Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Explorer vs. getElementById

    Ciao,
    premetto che di js ci capisco poco o niente, quello che ho fatto l'ho rimesso insieme da altri script.
    In una pagina ho un form di cui voglio validare i campi (leggi: assicurarsi che non vengano lasciati vuoti). Per farlo ho assegnato un'id (form) al tag form e poi uso questo codice per la validazione:

    codice:
    function controllo(){
      var elem=document.getElementById('form');
      if(elem.elements[1].value==""){
        alert("Errore: compilare il campo Nome");
        elem.elements[1].focus();
        return false;
      }
      if(elem.elements[2].value==""){
        alert("Errore: compilare il campo Telefono");
        elem.elements[2].focus();
        return false;
      }
    }
    Il codice è più lungo perché ci sono 15 campi, ma la sostanza non cambia.

    Il fatto è che se lo faccio girare su Firefox tutto ok, mentre Explorer (v. 6 e 7) non esegue il controllo. Dov'è che sbaglio? Oppure è Explorer che non interpreta bene la funzione getElementById? Come potrei rimediare, continuando ad avere uno scriptino semplice come questo (o almeno che restituisca un output semplice come questo)?
    Per essere completi, questo è il tag form:
    codice:
    <form action="preventivo.php" id="form" onsubmit="return controllo();" method="post">
    Amministratore mozillaitalia.org

    Le truppe sono state spiegate, ma chi sa perché io continuo a non capirle.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che assegnare id con nomi riservati (form, input, select, type,etc...) e comunque sbagliato i campi come sono formattati? Ie restituisce errori?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie per il consiglio sull'ID, lo cambierò quanto prima. Giusto per fare prima, la pagina è questa: http://iacchi.dreamhosters.com/preventivo.php

    Di js ci capisco poco, ma l'html dovrebbe essere a posto.
    Amministratore mozillaitalia.org

    Le truppe sono state spiegate, ma chi sa perché io continuo a non capirle.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    60
    non so dirti nulla sulla tua domanda, ma guardando il tuo codice ho visto che c'è un errore:
    il puntamento dell'oggetto nell'array deve partire da 0 e non da 1

    codice:
    function controllo()
    { 
    var elem=document.getElementById('form'); 
    if(elem.elements[0].value=="")
    { 
    alert("Errore: compilare il campo Nome"); 
    elem.elements[0].focus(); 
    return false; 
    }
    valido per il campo nome

  5. #5
    Eppure se provi a compilare i campi con FF (o anche a inviare il form senza scrivere niente) vedrai che ti esce per primo l'errore che manca il campo nome, quindi direi che è corretto 1->nome
    Amministratore mozillaitalia.org

    Le truppe sono state spiegate, ma chi sa perché io continuo a non capirle.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da iacchi
    Eppure se provi a compilare i campi con FF (o anche a inviare il form senza scrivere niente) vedrai che ti esce per primo l'errore che manca il campo nome, quindi direi che è corretto 1->nome
    Questo non significa niente se vi fosse uno standard tra i browser e javascript, questo forum avrebbe molte meno discussioni, in oltre quando non si conosce bene il linguaggio se ti si da un consiglio o una prova prima s'esegue poi (se non funziona) a limite si controbatte (sai quanti errori risolti con modifiche all'apparenza inutili).

    Pertanto prova a fare le modifiche consigliate e anche a cambiare questo riga:
    <script type="application/javascript" src="validator.js"></script>
    con questa:
    <script type="text/javascript" src="validator.js"></script>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Originariamente inviato da cavicchiandrea
    Questo non significa niente se vi fosse uno standard tra i browser e javascript, questo forum avrebbe molte meno discussioni, in oltre quando non si conosce bene il linguaggio se ti si da un consiglio o una prova prima s'esegue poi (se non funziona) a limite si controbatte (sai quanti errori risolti con modifiche all'apparenza inutili).
    Touché. Ora però lo posso dire: bisogna partire da 1, non da 0.

    Originariamente inviato da cavicchiandrea
    Pertanto prova a fare le modifiche consigliate e anche a cambiare questo riga:
    <script type="application/javascript" src="validator.js"></script>
    con questa:
    <script type="text/javascript" src="validator.js"></script>
    E qui è cascato l'asino: problema risolto. Grazie!

    Ora, per curiosità se lo sapete: io credevo che text/javascript andasse messo quando si mette uno script dentro la pagina html e application/javascript quando si linka un js esterno. Viso che così non è: quand'è che si mette application/javascript? Voglio dire, ci sono altri modi di includere un js oltre a scriverlo nella pagina o linkare un js esterno?
    Amministratore mozillaitalia.org

    Le truppe sono state spiegate, ma chi sa perché io continuo a non capirle.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    60
    Originariamente inviato da iacchi
    Touché. Ora però lo posso dire: bisogna partire da 1, non da 0.
    scusa in effetti non mi ero accorto che stavo usando Chrome, con IE e Firefox hai ragione tu ma con Chrome sbaglia l'indice.

  9. #9
    questo però è un errore di Chrome. Forse andrebbe anche segnalato...
    Amministratore mozillaitalia.org

    Le truppe sono state spiegate, ma chi sa perché io continuo a non capirle.

  10. #10
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    chrome non conta i fieldset, gli altri si'

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.