2010-01-27 88 views
2

我想實現更改用戶密碼的功能。它基本上是一個有三個領域的形式。三個輸入的ID是oldpassword,newPasswordnewPasswordAgainJquery ajax密碼驗證

當用戶失去了舊密碼輸入或提交表單的焦點時,我想檢查數據庫,看看是否正確輸入了舊密碼。 如何通過使用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結果。我不能直接從結果中得出真假。

回答

1

您可以根據$.ajax並設置async:falsehttp://api.jquery.com/jQuery.ajax/
這將等待調用完成,擋住你的頁面。

這就是說,我不確定你是否應該使用JavaScript來驗證密碼。這是你通常想要在服務器上完成的事情,無論如何它都沒有任何安全性。

+0

是的,我的應用程序中確實存在服務器端驗證,客戶端驗證只是用戶體驗的增強。異步的作品。謝謝! – Sawyer 2010-01-28 01:58:13