質問

ユーザーのパスワードを変更する機能を実装したいと思います。基本的には3つのフィールドを持つフォームです。 3つの入力のIDは次のとおりです oldpassword, newPasswordnewPasswordAgain .

ユーザーが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を使用するかどうかはわかりません。これは通常、サーバーでやりたいことであり、とにかくセキュリティはゼロです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top