Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: jquery validation

  1. #1

    jquery validation

    Salve, ho un problema con jquery validation, ho scelto questa libreria per aiutarmi con i controlli dei campi di una form d'inserimento dati, mi è stata molto d'aiuto e mi ha permesso di fare controlli semplici ma efficaci in poco tempo, mi è rimasto solo un piccolo problema, nella mia form ci sono due select popolate in maniera uguale e la form deve procedere solo se le due form hanno assunto valori diversi, ho provato a creare una funzione da implementare in jquery validation con scarso successo, spero che qualcuno mi venga in aiuto. In seguito riporterò il codice della mia idea ma non efficace.
    codice:
    $.validator.addMethod( 	
    "diverso", function(value, element, param) { 		
    return this.optional(element) || $(param).val() == "" || value != new ($(param).val()); 	
    }, 	
    "tutti i dati devono essere diversi" );

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto, prova a mettere un alert nella funzione per vedere cosa riceve, e posterei anche un link alla pagina pubblica per testare/vedere la pagina in azione
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Originariamente inviato da cavicchiandrea
    Ciao e benvenuto, prova a mettere un alert nella funzione per vedere cosa riceve, e posterei anche un link alla pagina pubblica per testare/vedere la pagina in azione
    prima di tutto ti ringrazio per il benvenuto, comunque purtroppo il sito in questione è in locale nel mio computer, per quanto riguarda la funzione alert mi da errore nella funzione all'inserimento del comando

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    per quanto riguarda la funzione alert mi da errore nella funzione all'inserimento del comando
    Ciao,
    potresti indicare che errore ti da?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    no mi da nessun errore, forse mi sono spiegato male, a codice non mi da nessun errore ma non mi fa il controllo desiderato, riporto qua sotto dove utilizzo la funzione precedentemente scritta
    codice:
    $("#new_partita").validate(     
    {         rules:         {             
    id_squadracasa: "required",             
    id_squadraospite:{                 required: true,                 
                                              diverso: "#id_squadracasa"             },             
    data:             {                 required: true,                 
                                           dateISO: true             },             
    goalcasa: {                 required: true,                 number: true             },     
    goalospite: {                 required: true,                 number: true             }        
     },        
     messages:         {             
    id_squadraospite: "Le due squadre sono uguali",             
    data: "Inserisci un formata data valido!",             
    goalcasa: "Inserire un numero valido!",             
    goalospite: "Inserire un numero valido!"         }     });

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ho fatto qualche prova. Togliendo il new() sembra funzionare:
    codice:
    //return this.optional(element) || $(param).val() == "" || value != new ($(param).val());
    return this.optional(element) || $(param).val() == "" || value != $(param).val();
    Se non risolvi così utilizza un alert come ti ha già indicato Andrea, così da verificare se la funzione viene effettivamente chiamata e cosa sta ricevendo.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Originariamente inviato da KillerWorm
    Ho fatto qualche prova. Togliendo il new() sembra funzionare:
    codice:
    //return this.optional(element) || $(param).val() == "" || value != new ($(param).val());
    return this.optional(element) || $(param).val() == "" || value != $(param).val();
    Se non risolvi così utilizza un alert come ti ha già indicato Andrea, così da verificare se la funzione viene effettivamente chiamata e cosa sta ricevendo.
    ho corretto l'errore come suggerito, ma ancora niente, allora ho provato con l alert ed effettivamente non mi da niente a video anche posizionando la l'alert come prima riga di codice.
    edit: ho trovato un errore adesso mi richiama la funzione,ho messo l'alert con a video queste tre variabili alert(value+" "+element+" "+param); il risultato a video è questo 1 [object HTMLSelectElement] #id_squadracasa

    riporto qui sotto la pagina web e il codice javascript
    codice:
    <html>   
    <head>   <title></title>   
    <link rel="stylesheet" href="/css/template.css" type="text/css">   
    <script language="javascript" src="/javascript/jquery-lib.js" type="text/javascript"></script>
    <script language="javascript" src="/javascript/jquery.validate.js" type="text/javascript</script> 
    <script language="javascript" src="/javascript/newjavascript.js" type="text/javascript"></script>   
    </head>   
    <body>     
    <div id="header">    
    <div id="menu">        <ul>         [*]Squadre               [*]Giocatori         [*]Partite         [*]Classifica Campionato                 [*]LogOut               [/list]</div>      </div>   
    <div id="content">        
    <h1>Nuova Partita</h1> 
    <form action="update" method="POST" id="new_partita">    
     <span>Squadra Casa</span>     
    <select name="id_squadracasa">
    <option value="1">Waterpolo Montecchio</option>
    <option value="2">Pallanuoto Pesarese</option>
    <option value="3">Vela</option></select>
         
    <span>Squadra Ospite</span>     
    <select name="id_squadraospite">
    <option value="1">Waterpolo Montecchio</option>
    <option value="2">Pallanuoto Pesarese</option>
    <option value="3">Vela</option></select>
         
    <span>Data</span>     
    <input type="text" name ="data" id="data">
         
    <span>Goal Casa</span>     
    <input type="text" name ="goalcasa">
         
    <span>Goal Ospite</span>     
    <input type="text" name ="goalospite">
         
    <input type="submit" value ="INVIA"> </form>  </div> </body> </html>
    codice:
    $.validator.addMethod( 	"diverso", function(value, element, param) 
    { 		
    return this.optional(element) || $(param).val() == "" || value != $(param).val(); 
    	}, 	
    "tutti i dati devono essere diversi" ); 
    $(document).ready(function()
    {  
    $("#new_partita").validate(     
    {        
     rules:         {             id_squadracasa: "required",            
     id_squadraospite:{                 required: true,                
     diverso: "#id_squadracasa"             },            
     data:             {                 required: true,                 
    dateISO: true             },            
     goalcasa: {                 required: true,                 
    number: true             },             
    goalospite: {                 required: true,                
     number: true             }         },        
     messages:         {             
    id_squadraospite: "Le due squadre sono uguali",            
    data: "Inserisci un formata data valido!",            
     goalcasa: "Inserire un numero valido!",             
    goalospite: "Inserire un numero valido!"         }     });
     });

  8. #8
    mi scuso per il doppio post ma non posso modificare il post precedente, ho risolto il problema in grazie alla correzione della funzione e dopo aver corretto un mio errore riguardante l'id della select, per sbaglio avevo messo name apposto di id, adesso avrei un altro problema la stessa funzione sopra la devo usare per controllare 13 campi di una select che siano tutti diversi, sapete un metodo più veloce che richiamare la funzione 12 volte per ogni select?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    invece di passare l'id del campo da controllare in input al metodo, poi passare una classe che faccia riferimento a tutte le select. Cicli la collezione di oggetti e fai le tue verifiche.

  10. #10
    Originariamente inviato da Vindav
    invece di passare l'id del campo da controllare in input al metodo, poi passare una classe che faccia riferimento a tutte le select. Cicli la collezione di oggetti e fai le tue verifiche.
    grazie mille soluzione valida e veloce, solo che non capisco perchè anche mettendo 13 valori diversi non mi fa andare avanti

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.