Вопрос

Я хочу реализовать функциональность изменения пароля пользователя. Это в основном форма с тремя полями. Идентификаторы трех входов 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 для проверки пароля. Это то, что вы обычно хотите сделать на сервере, и в любом случае он имеет нулевую безопасность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top