質問
ユーザーのパスワードを変更する機能を実装したいと思います。基本的には3つのフィールドを持つフォームです。 3つの入力のIDは次のとおりです 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の結果が必要です。結果から直接trueまたはfalseを取得することはできません。
解決
使用することができます $.ajax
とセット async:false
: http://api.jquery.com/jquery.ajax/
これにより、電話が完了するのが待ち、ページをブロックします。
とはいえ、パスワードを検証するためにJavaScriptを使用するかどうかはわかりません。これは通常、サーバーでやりたいことであり、とにかくセキュリティはゼロです。
所属していません StackOverflow