Jquery ajax password valysation
-
23-09-2019 - |
Вопрос
Я хочу реализовать функциональность изменения пароля пользователя. Это в основном форма с тремя полями. Идентификаторы трех входов oldpassword
, newPassword
а также newPasswordAgain
.
Когда пользователь потерял фокус ввода OldPassword или отправить форму, я хочу проверить базу данных, чтобы увидеть, правильно ли введен OldPassword. Как я могу достичь этого, используя проверку jQuery?
Я добавляю подобное правило настраиваемого:
$.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!");
Но проблема в том, что до того, как мой метод сообщения вернет флаг результата, метод уже завершен, поэтому я всегда получаю сообщение об ошибке. Я знаю, что валидация jQuery имеет удаленный метод, но я не могу его использовать, потому что я использую плагин Struts2-JSON, мой результат JSON всегда инкапсулирует в объект, а удаленный метод нуждается в булевом результате JSON. Я не могу напрямую стать правдой или ложным с результата.
Решение
Вы можете использовать использование $.ajax
и сет async:false
: http://api.jquery.com/jquery.ajax/
Это будет ждать завершения вызова, блокируя вашу страницу.
Тем не менее, я не уверен, что вы используете JavaScript для проверки пароля. Это то, что вы обычно хотите сделать на сервере, и в любом случае он имеет нулевую безопасность.