Domanda

Voglio implementare una funzionalità di modifica della password dell'utente. È fondamentalmente una forma con tre campi. Gli ID dei tre input sono oldpassword, newPassword e newPasswordAgain .

Quando l'utente ha perso il focus dell'ingresso di OldPassword o inviare il modulo, voglio verificare contro il database, per vedere se OldPassword è inserito correttamente. Come posso raggiungere questo obiettivo usando la convalida jQuery?

Aggiungo una regola personalizzata come questa:

            $.validator.addMethod("checkOldPass",function (value ,element) {
            var validPass = false ;
            $.post("/SMS/admin/users/checkOldPass.do" , {"empId":empId , "oldEmpPass":$.md5(value)},function (data) {
                    var msg = eval('('+data+')');
                    if(msg.resultFlag == 1) {
                        validPass = true ;

                    }
                });
              return validPass ;
            } , "error!");

Ma il problema è che, prima che il mio metodo post restituisca un flag di risultato, il metodo è già finito, quindi ricevo sempre il messaggio di errore. So che la validazione di jQuery ha un metodo remoto, ma non posso usarlo, perché sto usando il plug-in Struts2-JSON, il mio risultato JSON si incapsula sempre in un oggetto e il metodo remoto ha bisogno di un risultato booleano JSON. Non riesco a ottenere direttamente vero o falso dal risultato.

È stato utile?

Soluzione

Puoi usare l'uso $.ajax e impostare async:false: http://api.jquery.com/jquery.ajax/
Questo aspetterà il completamento della chiamata, bloccando la tua pagina.

Detto questo, non sono sicuro che tu possa usare JavaScript per convalidare una password. Questo è qualcosa che in genere vuoi fare sul server e ha comunque zero sicurezza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top