Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema validazione

  1. #1

    Problema validazione

    Ciao, ho un problema con la validazione dei campi select in un form.
    Sto utilizzando uno script java che controlla correttamente tutti i campi tranne il select appunto.
    Dalle ricerche in rete ho visto che l'argomento e ultra ritrattato, ma ne ho provate di tutte e qualsiasi modifica inserisco, invalida anche il controllo degli altri campi.
    Per farla breve il codice che sto utilizzando è questo:

    java
    codice:
    <script type="text/javascript">
    // <![CDATA[
    function controlla(form)
    {
     for (i = 0; i < form.length; i++)
     {
     var campo = form.elements[i];
      if (!campo.disabled && !campo.readonly && (campo.type == "text" || 
    
    campo.type == "password" || campo.type == "textarea") && campo.value == "")
     {
     alert("Tutti i campi sono obbligatori!");
     return false;
     }
     }
     return true;
    }
    // ]]>
    </script>
    html
    codice:
    <td align="left" valign="top">
              <form action="preventivi.php" method="post" name="form1" onsubmit="if (controlla(this)) return true; return false">
               
    
    Cognome e nome: 
    
                  <input name="nome" type="text" id="nome" size="70" maxlength="70" />
                  <label for="nome"></label>
                  <label for="nome"></label>
                </p>
                
    
    Email:
    
                  <input name="email" type="text" id="email" size="35" />
              </p>
                
    
    Numero di telefono:
    
                <input name="telefono" type="text" id="telefono" size="35" /></p>
                
    
    Provincia:
    
                <select name="provincia" size="1">
                  <option selected="selected">   </option>
                      <option>Alessandria</option>
                      <option>Asti</option>
                      <option>Bergamo</option>
                  		<option>Biella</option>
                      <option>Brescia</option>
                      <option>Como</option>
                      <option>Cremona</option>
                      <option>Cuneo</option>
                      <option>Lodi</option>
                      <option>Mantova</option>
                      <option>Milano</option>
                      <option>Novara</option>
                      <option>Pavia</option>
                      <option>Piacenza</option>
                      <option>Sondrio</option>
                      <option>Torino</option>
                      <option>Varese</option>
                      <option>Verbano-Cusio-Ossola</option>
                      <option>Vercelli</option>
                 </select></p>
                
    
    Comune:
    <input name="comune" type="text" size="70" maxlength="70" /></p>
                
    
    Preventivo per:
     
                	<select name="lavoro" size="1">
                    <option selected="selected">Seleziona</option>
                  <option>Fotovoltaico</option>
                  <option>Ristrutturazioni edili</option>
                  <option>Impianti elettrici</option>
                  <option>Impianti d'allarme</option>
                  <option>Impianti di videosorveglianza</option>
                  <option>Automazione cancelli/persiane</option>
                  <option>Condizionatori</option>
                  <option>Installazione caldaie</option>
                  <option>Impianti di riscaldamento</option>
                  <option>Solare termico</option>
                  <option>Traslochi</option>
                  <option>Certificazione energetica</option>
                  <option>Imbianchino/cartongesso</option>
                  <option>Cablaggi strutturati</option>
                  <option>Siti web</option>
                  <option>Idraulico</option>
                  <option>Tariffe telefonia fissa e mobile</option>
                  <option>Fabbro</option>
                  </select></p>
                
    
    Informazioni aggiuntive:
    
                  <textarea name="informazioni" cols="60" rows="7">Maggiori sono le informazioni inviate, più accurati e precisi potranno essere i preventivi ricevuti</textarea>
                </p>
                
    
    Acconsento al trattamento dei dati personali 
                  <input name="privacy" type="checkbox" id="privacy" checked="checked" />
                  <label for="privacy"></label>
    <label for="privacy"></label>
                </p>
                <input type="submit"  value="Invia i dati per ricevere i preventivi gratuiti"  name="submit" /></form>
                  </td>

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    per controllare se un'opzione della select e' stata scelta:

    ( if campo.type.indexOf("select")>=0 && campo.selectedIndex>=0 )

    Legalo tu agli altri controlli... e comincia a pensare ai checkbox e ai radio
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Credo di aver già provato anche questo e come unico risultato ho ottenuto la mancanza di controllo anche sui campi text...

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da mrL4N
    Credo di aver già provato anche questo e come unico risultato ho ottenuto la mancanza di controllo anche sui campi text...
    Allora il tuo browser e' strano

    Facci vedere come hai "gia' provato"
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Originariamente inviato da br1
    Allora il tuo browser e' strano
    Lo so... ...infatti ultimamente sono molto preoccupato

    codice:
    <script type="text/javascript">
    // <![CDATA[
    function controlla(form)
    {
     for (i = 0; i < form.length; i++)
     {
     var campo = form.elements[i];
      if (campo.type.indexOf("select")>=0 && campo.selectedIndex>=0 )
    {
     alert("Inserisci il campo provincia!");
     return false;
     else if (!campo.disabled && !campo.readonly && (campo.type == "text" || 
    
    campo.type == "password" || campo.type == "textarea") && campo.value == "")
     {
     alert("Tutti i campi sono obbligatori!");
     return false;
     }
     }
     return true;
    }
    // ]]>
    </script>

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Indento meglio il tuo codice... noti nulla di strano?
    codice:
    <script type="text/javascript">
    // <![CDATA[
    function controlla(form) {
      for (i = 0; i < form.length; i++) {
        var campo = form.elements[i];
        if (campo.type.indexOf("select")>=0 && campo.selectedIndex>=0 ) {
          alert("Inserisci il campo provincia!");
          return false;
          else if (!campo.disabled && !campo.readonly && (campo.type == "text" || 
          campo.type == "password" || campo.type == "textarea") && campo.value == "") {
            alert("Tutti i campi sono obbligatori!");
            return false;
          }
        }
        return true;
      }
    // ]]>
    </script>
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Originariamente inviato da br1
    Indento meglio il tuo codice... noti nulla di strano?
    Ma secondo te se conoscevo javascript almeno la metà di quanto la conosci tu, venivo qui a farmi prendere in giro?
    Direi che è piuttosto diverso, e probabilmente sarà anche nella forma corretta...
    Lo provo subito, grazie

    P.S. anche con la tua indentazione il risultato non cambia...se clicco su invia senza inserire nulla, il form invia la mail come se tutto fosse compilato.

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da mrL4N
    Ma secondo te se conoscevo javascript almeno la metà di quanto la conosci tu, venivo qui a farmi prendere in giro?
    Direi che è piuttosto diverso, e probabilmente sarà anche nella forma corretta...
    Lo provo subito, grazie

    P.S. anche con la tua indentazione il risultato non cambia...se clicco su invia senza inserire nulla, il form invia la mail come se tutto fosse compilato.
    Nessuno ti prende in giro, si cerca solo di fornirti gli spunti perche' ti possa rendere conto degli errori e arrivare ragionando a capire un pelino di piu' la programmazione...
    Per quel che riguarda il javascript devi solo stabilire cosa vuoi fare: capirlo meglio per utilizzarlo meglio o farti fare il lavoro da qualcun'altro?

    Non e' certo con l'indentazione diversa che uno script funziona o meno, ma una corretta indentazione aiuta a capire dove sono gli errori concettuali e sintattici.

    Stavolta te lo scrivo corretto e te lo completo, promettimi di confrontare attentamente la versione funzionante con la precedente e cerca di ragionare sul perche' delle modifiche effettuate.
    codice:
    <script type="text/javascript">
    // <![CDATA[
    function controlla(form) {
      for (i = 0; i < form.length; i++) {
        var campo = form.elements[i];
        if (campo.type.indexOf("select")>=0 && campo.name=="provincia" && campo.selectedIndex<=0 ) {
          alert("Inserisci il campo provincia!");
          return false;
        } else if (campo.type.indexOf("select")>=0 && campo.name=="lavoro" && campo.selectedIndex<=0 ) {
          alert("Inserisci il campo lavoro!");
          return false;
        } else if (campo.name=="privacy" && !campo.checked ) {
          alert("Devi accettare la privacy!");
          return false;
        } else if (!campo.disabled && !campo.readonly && (campo.type == "text" || 
          campo.type == "password" || campo.type == "textarea") && campo.value == "") {
          alert("Tutti i campi sono obbligatori!");
          return false;
        }
      }
      return true;
    }
    // ]]>
    </script>
    Prendilo come un invito allo studio
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Grazie, ora funziona correttamente...
    Nel mio mancava proprio il nome del campo della select da verificare per cui non poteva certo fare quello di cui avevo bisogno.
    Non mi è chiaro perchè come l'avevo messo io non controllava più nemmeno i campi testo...

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.