Validazione forum con jquery.validate

MarcoGrazia

Utente Attivo
15 Dic 2009
792
16
18
59
Udine
www.stilisticamente.com
Ciao, ho bisogno di aiuto per una libreria che non sta più funzionando.
La libreria è la validate() che funziona con jquery e permette in modo semplice e facile di validare un form... in teoria!
Anzi, anche in pratica ma non questa volta.
In pratica ho costruito un pagina dove un amministratore di sistema può aggiungere un utente, e tramite un semplice form inserirne i dati, solitamente account ( e qui tramite jquery UI avviene un controllo sul nome inserito, per evitare di inserirlo due volte ) nome, cognome e infine la password ( da ripetere due volte per non sbagliare ).
In pratica la validazione non avviene, ma viene sempre lanciato il form ( metodo post ) con i dati inseriti fino a quel momento, senza considerare minimamente la validazione.
Un po' di codice, poco perché il file originale consta per ora, di soli 17 KB, più js esterni e css, va be che si trova in una intranet :D
Ultima condizione, uso il framework Bootstrap, per non farmi mancare nulla.
Dunque: HTML.
Codice:
<!-- Dati utente -->
                        <h3 id="dati-riportati">Dati riportati</h3>
                        <div class="form-group">
                            <label for="account" class="col-sm-2 control-label">Account</label>
                            <div class="col-sm-10">
                                <input type="text" class="form-control" id="account" name="account" placeholder="nome.cognome" value="<?php echo $input['account']; ?>" aria-describedby="helpBlock-Account">
                                <span id="helpBlock-Account" class="help-block">Inserisci un nuovo account nella forma richiesta.</span>
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="titolo" class="col-sm-2 control-label">Nome e cognome</label>
                            <div class="col-sm-10">
                                <div class="row">
                                    <div class="col-sm-2">
                                        <input type="text" class="form-control" id="titolo" name="titolo" placeholder="Signor, Signora ... Dottor, Dottoressa" value="<?php echo $input['titolo']; ?>">
                                    </div>
                                    <div class="col-sm-5">
                                        <input type="text" class="form-control" id="nome" name="nome" placeholder="Mario" value="<?php echo $input['nome']; ?>">
                                    </div>
                                    <div class="col-sm-5">
                                        <input type="text" class="form-control" id="cognome" name="cognome" placeholder="Rossi" value="<?php echo $input['cognome']; ?>">
                                    </div>
                                </div>
                            </div>
                        </div>

                        
<!-- Password -->
                        <div class="form-group">
                            <label for="password" class="col-sm-2 control-label">Inserisci la password</label>
                            <div class="well col-sm-10">
                                <div class="row">
                                    <div class="col-sm-6">
                                        <div class="input-group">
                                            <input type="text" class="form-control" id="password1" name="password1" value="">
                                            <span class="input-group-btn">
                                                <button class="btn btn-success" id="generatore" type="button"><span class="fa fa-cog" aria-hidden="true"></span> Genera</button>
                                            </span>
                                        </div>
                                        <span class="helpBlock-P1">Inserisci una password.</span>
                                    </div>
                                    <div class="col-sm-6">
                                        <input type="text" class="form-control" id="password2" name="password2" value="">
                                        <div class="helpBlock-P2">Ripeti la password.</div>
                                    </div>
                                </div>
                            </div>
                        </div>
                       
                        <div class="form-group">
                            <div class="col-sm-offset-2 col-sm-10">
                                <button type="submit" class="btn btn-success btn-block" name="add" value="aggiungi">
                                    <span class="fa fa-user-plus" aria-hidden="true"></span> AGGIUNGI</span>
                                </button>
                            </div>
                        </div>

Quindi il javascript che prosegue sotto l'HTML.
Codice:
$( document ).ready( function() {
                $( '#account' ).autocomplete({
                    source: 'suggestionAdmin-Nomi.get.php',
                    minLength: 3,
                    autoFill: true,
                    max:30,
                    formatItem: function ( row ) {    return row[0] + " (" + row[2] + ", " + row[1] + ")" + " "+row[5];    },
                    formatMatch: function ( row ) {    return row[0];    },
                    formatResult: function ( row ) {    return row[0];    }
                });
                $('#account').focus();
               
               
                jQuery.validator.addMethod("valueNotEquals", function(value, element, arg){
                    return arg !== value;
                }, "Le due password devono necessariamente essere uguali.");
               
                jQuery.validator.addMethod("username_rule", function(value, element) {   
                    return this.optional(element) || /^[a-z \.]{2,50}$/i.test(value);   
                }, "Inserisci solo lettere da a alla z e spazi.");
               
                $('form').validate(
                {
                    rules:
                    {
                        account:
                        {
                            required: true,
                            username_rule: true
                        },
                        nome: {
                            required: true,
                            minlength: 2,
                            username_rule: true
                        },
                        cognome: {
                            minlength: 2,
                            username_rule: true
                        },
                        anno: {
                            valueNotEquals: '-1'
                        },
                        password1: {
                            minlength: 5,
                            required: true
                        },
                        password2: {
                            required: true,
                            equalTo: '#password1'
                        }
                    },
                    highlight: function (element) {
                        $(element).closest('.form-group').removeClass('has-success').addClass('has-error');
                    },
                    unhighlight: function (element) {
                        $(element).closest('.form-group').removeClass('has-error').addClass('has-success');
                    },
                    submitHandler: function(form) {
                        var h = '<input type="hidden" name="h1" value="' + hex_sha512($('#password1').val()) + '">';
                            h += '<input type="hidden" name="h2" value="' + hex_sha512($('#password2').val()) + '">';
                        $('#helpBlock-P2').append(h);
                        h = null;
                        $('#password1').val('Yahoo!');
                        $('#password2').val('Google');
                        form.submit();
                    }
                });
Ora, così com'è qualunque cosa inserisca nel form , mi viene sempre rimandato un POST coni seguenti dati:
POST:
array(2) {
["search"]=>
string(0) ""
["add"]=>
string(8) "aggiungi"
}
Cioè non vengono inseriti i dati del form, ma viene creato un "search" che francamente mi manca nei dati inviati ( ho fatta la ricerca in tutto il listato, ma non esiste quella parola in tutto il file ) e il resto scompare, tra l'altro senza validare nulla.
Se elimino l'oggetto submitHandler() il form viene inviato con i dati giusti, o meglio quelli inseriti ma senza validazione.
Non ci sto capendo una cippa :D se ci riuscite, mi date una mano?
 

MarcoGrazia

Utente Attivo
15 Dic 2009
792
16
18
59
Udine
www.stilisticamente.com
Risolto :mad:
In pratica $(nome).validate(){}); dove nome non può essere l'elemento, ma un identificativo univoco, ovvero form non va bene anche se è l'unico form nella pagina, ma deve essere necessariamente un ID.

due giorni di lavoro persi :(
 

MarcoGrazia

Utente Attivo
15 Dic 2009
792
16
18
59
Udine
www.stilisticamente.com
Trovata questa espressione regolare e funziona
^(\+{0,1}[0-9]{2,3}|[0-9]{3,5})[-\/ ]?[0-9]{2,4}[-\/ ]?[0-9]{5,8}$
Permette di validare sia numeri di cellulare che fissi, nelle forme
+39 123 456789
+39123456789
123456789
+39-123-456789
+39 123 456789
Per ora mi va bene :)
Ah per valutare una regex io uso questo tool online: https://regex101.com/ se vi interessa, fateci un giro.
 
Discussioni simili
Autore Titolo Forum Risposte Data
E Variabile Superglobale $_REQUEST e Validazione Input Forum Utente PHP 1
D Form validazione Javascript 2
A Mantenere la validazione reindirizzandoci su un secondo sito WEb. (ASP.NET) ASP.NET 0
E Validazione campi form passati da link Programmazione 0
K Come eliminare attributi regex per validazione con javascript Javascript 0
MarcoGrazia [Javascript] Regex per la validazione di un numero di telefono. Javascript 2
K [PHP] Validazione email e password PHP 1
Samuele Ronzani [PHP] Validazione e invio campi form. PHP 7
G validazione form con div tipo alert jQuery 0
I Libreria di validazione e sanitizzazione PHP 0
G Validazione indirizzo mail PHP 1
M Validazione documenti HTML5 HTML e CSS 0
asevenx validazione W3C con errore utf-8 HTML e CSS 3
P Campo select e validazione conjs Javascript 0
radioButton Problemi validazione con jQuery validation jQuery 0
novello88 Validazione modulo non funziona Javascript 1
C Css id univoco e validazione w3c HTML e CSS 1
radioButton validazione input tipo radio Javascript 2
H Problema validazione CAPTCHA PHP 20
P problemi di validazione asincronizzazione dati PHP 7
asevenx errore da risolvere per validazione W3C HTML e CSS 3
S Validazione W3C HTML e CSS 1
E Validazione dei caratteri di una stringa con preg_match PHP 0
criric Validazione form php ajax Snippet PHP 4
D Validazione password javascript non fuziona Javascript 7
D Come creare validazione form istantanea?? Javascript 1
N Validazione form e select dinamica Javascript 5
A Problema validazione w3c HTML e CSS 2
A Validazione w3c warnings HTML e CSS 1
S Form PHP e validazione con ritorno di parametro PHP 0
P problema validazione form con ajax e jquery Ajax 0
D Problema nella validazione di un form con JQUERY ed AjAX jQuery 4
A Problema di validazione W3C HTML e CSS 1
JellyBelly Strutturare un database di tipo questionario - gestione della validazione PHP 5
S Validazione xhtml (onload - embed) HTML e CSS 0
M Symfony2 validazione ajax PHP 0
S Validazione css lightbox2 HTML e CSS 4
S Validazione css lightbox2 Content Management System (CMS) 0
S Validazione javascript Javascript 28
C problema link con ul e li e validazione pagina HTML e CSS 6
M Livevalidation: applicare validazione solo se si sceglie una option di una select. Javascript 0
renoir09 wordpress, validazione, segno "&" WordPress 0
renoir09 wordpress e validazione WordPress 6
G problema con plugin validazione form jquery jQuery 0
G validazione w3c del mio sito web HTML e CSS 3
F Validazione w3c con ip NON pubblico HTML e CSS 2
neo996sps Errore validazione su index PHP 2
S Zend_Validate_Regex: Problema validazione PHP 7
SolidSnake4 Errore validazione feed rss Apache 6
P Problemi validazione HTML e CSS 2

Discussioni simili