Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Validate fa i capricci!!!: Valida campi ma non invia

    Carissimi,

    sono un assiduo frequentatore delle pagine di html.it e devo dire che grazie a questa realtà (Forum, CD html.it 2008) ho imparato tantissimo.

    Mi sono specializzato più che altro nel linguaggio lato server PHP, e con quelli client faccio ancora a cazzotti

    Utilizzo un semplice form di validazione che riuso a secondo dei casi, ma ogni tanto e non riesco a darmi spiegazioni non funge come dovrebbe.

    andiamo nel caso specifico: Lo script controlla effetivamente tutti i campi, ho provato ad inserire i valori 1 ad 1 ed effettivamente il controllo funziona, ma quando i campi sono tutti completi e corretti non invia i dati, nessuna schermata di errore"
    vi riporto il codice e resto in attesa di vostri consigli.

    Grazie!!!

    codice:
    <script type="text/javascript" language="JavaScript">
    <!--
      function Modulo() {
    
         // Variabili associate ai campi del modulo
    
    var nprot = document.modulo.nprot.value;
    
    var protdel = document.modulo.protdel.value;
    
    var destinatario = document.modulo.destinatario.value;
    
    var utente_nominativo = document.modulo.utente_nominativo.value;
    
    var utente_cellulare = document.modulo.utente_cellulare.value;
    
    
    //Effettua il controllo sul campo DESTINATARIO
    
              if ((destinatario == "") || (destinatario == "undefined")) {
    
               alert("Il campo DESTINATARIO e' obbligatorio.");
    
               document.modulo.destinatario.focus();
    
               return false;
    
            } 
    
    
    //Effettua il controllo sul campo NOMINATIVO
    
             else if ((utente_nominativo == "") || (utente_nominativo == "undefined")) {
    
               alert("Il campo NOMINATIVO e' obbligatorio.");
    
               document.modulo.utente_nominativo.focus();
    
               return false;
    
            } 
    
    //Effettua il controllo sul campo CELLULARE
    
             else if ((utente_cellulare == "") || (utente_cellulare == "undefined")) {
    
               alert("Il campo CELLULARE e' obbligatorio.");
    
               document.modulo.utente_cellulare.focus();
    
               return false;
    
            } 
    
    
            //Effettua il controllo sul campo PROTOCOLLO
    
           else if ((isNaN(nprot)) || (nprot == "undefined")|| (nprot == "")) {
    
    
    
               alert("Il campo NUMERO PROTOCOLLO  deve contenere un valore numerico.");
    
    
    
               document.modulo.nprot.value = "";
    
    
    
               document.modulo.nprot.focus();
    
    
    
               return false;
    
            }
    
    
            //Effettua il controllo sul campo DATA PROTOCOLLO 
    
            else if (document.modulo.protdel.value.substring(2,3) != "/" || 
    
               document.modulo.protdel.value.substring(5,6) != "/" ||
    
               isNaN(document.modulo.protdel.value.substring(0,2)) ||
    
               isNaN(document.modulo.protdel.value.substring(3,5)) ||
    
               isNaN(document.modulo.protdel.value.substring(6,10))) {
    
                 alert("Inserire DATA PROTOCOLLO  in formato gg/mm/aaaa");
    
                  document.modulo.protdel.value = "";
    
                  document.modulo.protdel.focus();
    
                  return false;
    
            }
    
            else if (document.modulo.protdel.value.substring(0,2) > 31) {
    
               alert("Impossibile utilizzare un valore superiore a 31 per i giorni");
    
               document.modulo.protdel.select();
    
               return false;
    
            }
    
            else if (document.modulo.obbdata.value.substring(3,5) > 12) {
    
               alert("Impossibile utilizzare un valore superiore a 12 per i mesi");
    
               document.modulo.protdel.value = "";
    
               document.modulo.protdel.focus();
    
               return false;
    
            }
    
            else if (document.modulo.protdel.value.substring(6,10) < 1900) {
    
               alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno");
    
               document.modulo.protdel.value = "";
    
               document.modulo.protdel.focus();
    
               return false;
    
            }
    
    
            //INVIA IL MODULO
    
            else {
    
               document.modulo.action = "admin.php?p=nuovodocumento";
    
    
    
               document.modulo.submit();  
    
    
    
            }
    
    
    
      }
    
    
    //-->
    </script>

  2. #2
    Dimenticavo!!!

    Modificando l'ordine dei campi da validare il risultato cambia,

    es. spostando il controllo campi obbligatori alla fine (subito dopo il controllo DATA PROTOCOLLO) questi non vengono validati!!

    P.S. i nomi dei campi sono corretti, per completezza li riporto anche qui

    codice:
    <form method="POST" name="modulo" class="bk"  style="border:#C00; border-style:solid">
    <table>
    <tr><td colspan="2"></td></tr>
    <tr><td colspan="2">Dati istanza</td></tr>
    <tr><td>Protocollo N.ro</td>
    <td><input type="text" name="nprot" id="nprot" value=""/> del <input type="text" name="protdel" id="protdel" value=""/></td></tr>
    <tr><td>Oggetto</td><td><select id="idtipo" name="idtipo">
    
    <option value="1">VALORE 1</option>
    
    </td></tr>
    
    <tr><td>Destinatario</td><td><textarea name="destinatario" id="destinatario" value="" cols="37"/></textarea></td></tr>
    
    <tr><td colspan="2">Dati utente</td></tr>
    <tr><td>Nominativo </td><td><input type="text" name="utente_nominativo" id="utente_nominativo" value=""/></td></tr>
    <tr><td>E-mail </td><td><input type="text" name="utente_email" id="utente_email" value=""/></td></tr>
    <tr><td>Cellulare (Non lasciare spazi)</td><td><input type="text" name="utente_cellulare" id="utente_cellulare" value=""/></td></tr>
    <tr><td colspan="2" align="center">
    <input name="button" type="button" onClick="Modulo()" value="Invia" class="button"></td></tr>
    </table>
    
    </form>

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Primo appunto: non puoi confrontare una stringa con un numero:

    if (document.modulo.protdel.value.substring(0,2) > 31)

    Usa la funzione parseInt() o parseFloat()
    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

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.