Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    78

    jquery validation engine problema con numerosi campi

    ciao a tutti,
    ho utilizzato lo script jquery.validationEngine per diversi form e sono tutti impostati allo stesso modo, con il richiamo action="<?=$_SERVER['PHP_SELF']?>" e tutti i relativi controlli all'interno dello stesso script.

    Ho notato però che nei form che contengono pochi campi se clicco sul pulsante submit senza aver compilato i campi obbligatori lo script si blocca giustamente dandomi i messaggi di errore relativi al validatore.
    Mentre i form che hanno numerosi campi (più di 15/20) se clicco sul submit senza aver compulato i campi obbligatori mi processa ugualmente lo script come se non ci fosse la validazione.

    Un'idea del perchè e come ovviare?

    Grazie!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non credo che possa influire quanti campi ci sono nel form, posta il link alla pagina pubblica cosi da testare il tutto
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    78
    ho ancora tutto in locale, vi posto il codice del form funzionante e di quello non funzionante. a me sembra che l'unica differenza tra i form sia il numero di campi..

    form funzionante

    Codice PHP:
    <?php 
    $vediform
    =$_GET["err"];             
    $inviato=$_POST["inviato"];             
    if(
    $inviato=="ok"){                 
    #controlli ed eventuali messaggi di errore
    }             
    elseif((
    $inviato!="ok")||($vediform==1)||($vediform==""))             
    {             
    ?>             
    <form id="cnt" class="formular" action="<?=$_SERVER['PHP_SELF']?>" method="post">                 
    <label for="cnt_nome">Nome e Cognome</label>                 
    <input type="text" name="cnt_nome" id="cnt_nome"  class="validate[required]" />                 
    <label for="cnt_email">Email</label>                 
    <input type="text" name="cnt_email" id="cnt_email"  class="validate[required,custom[email]]" />                 
    <label for="cnt_oggetto">Oggetto</label>                 
    <input type="text" name="cnt_oggetto" id="cnt_oggetto"/>                 
    <label for="cnt_messaggio">Messaggio</label>                 
    <textarea name="cnt_messaggio" id="cnt_messaggio" class="validate[required]"></textarea>                 
    <input type="hidden" name="inviato" value="ok"  />                 
    <input type="submit" class="invia" value="Invia"/>                          
    </form>                          
    <? ?>
    form non funzionante
    Codice PHP:
    <?php 
    $vediform
    =$_GET["err"]; 
    $inviato=$_POST["inviato"]; 
    if(
    $inviato=="ok"){ 
    #controlli ed eventuali messaggi di errore
    }
    elseif((
    $inviato!="ok")||($vediform==1)||($vediform=="")) { ?> 

    <form id="informazioni" class="formular" action="<?=$_SERVER['PHP_SELF']?>" method="post">  
    <label for="appellativo">Appellativo <span class="req">*</span></label> 
    <input type="radio" value="m" name="appellativo" class="radio" checked="checked" /> <span class="label">Sig.</span> 
    <input type="radio" value="f" name="appellativo" class="radio"/> <span class="label">Sig.ra</span> 
    <label for="nome">Nome <span class="req">*</span></label> 
    <input type="text" name="nome" id="nome" class="validate[required]" /> 
    <label for="cognome">Cognome <span class="req">*</span></label> 
    <input type="text" name="cognome" id="cognome" class="validate[required]" />
    <label for="azienda">Azienda</label> 
    <input type="text" name="azienda" />
    <label for="indirizzo">Indirizzo</label> 
    <input type="text" name="indirizzo" />
    <label for="cap">Cap</label> 
    <input type="text" name="cap" id="cap" /> 
    <label for="localita">Localit&agrave;</label> 
    <input type="text" name="localita" />
    <label for="telefono">Telefono <span class="req">*</span> </label>
    <input type="text" name="telefono" id="telefono" class="validate[required,custom[phone]]" />
    <label for="email">Email <span class="req">*</span> </label> 
    <input type="text" name="email" id="email" class="validate[required,custom[email]]" /> 
    <input type="hidden" name="inviato" value="ok"  /> 
    <input type="submit" class="invia" value="Invia"/> 
    </form>
    (anche i controlli e gli eventuali messaggi di errore sono uguali tra loro, per quello li ho tagliati, per ridurre un pò il codice)

    al fondo di entrambe le pagine c'è il codice che richiama il validation engine:
    codice:
    <script type="text/javascript" src="js/jquery-1.4.3.min.js"></script>
    <script src="js/jquery.validationEngine-it.js" type="text/javascript" charset="utf-8"></script> 
    <script src="js/jquery.validationEngine.js" type="text/javascript" charset="utf-8"></script>  
    <script> 	
    jQuery(document).ready(function() { 	  
    jQuery("#informazioni").validationEngine(); 	  
    jQuery("#cnt").validationEngine(); 
    }); 
    </script>

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ok visto che non puoi mettere online, attendi che qualcuno abbia già riscontrato e risolto il problema
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    78
    mi sa di aver capito il problema. tutti i campi dovevano avere oltre al name l'id.
    grazie!

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.