2017-05-08 63 views
0

我有一个重置密码页,其中有2个字段。我为这两个字段添加了必需的验证规则。它的工作原理,但是当我仍然在输入新密码字段时,显示确认密码字段所需的错误信息。只有输入后才能显示确认密码字段的错误信息?使用jquery:一次显示一个字段的错误消息

$(document).ready(function() { 
      $("#resetPassword").validate({ 

      rules : { 
      newPassword: { 
        required: true}, 
      confirmPassword: { 
        required: true, 
        matchNewPassword: true}, 
      messages : { 
       confirm_password : "<fmt:message key='reset.password.warning.confirm'/>"}, 

       }}); 

    $("#resetPassword input").on('keyup blur', function() { 
    if ($("#resetPassword").valid()) {     
     $("#submit").prop('disabled', false);   
    } else { 
     $("#submit").prop('disabled', true); 
    } 
}); 
     }); 

     jQuery.validator.addMethod("matchNewPassword", function(value, element) { 
      var password = $("#new_password").val(); 
      var confirm_password = $("#confirm_password").val(); 

      if(confirm_password != password) { 
       return false; 
      } else { 
       return true; 
      } 
     }, "<fmt:message key='reset.password.warning.confirm'/>"); 

回答

0

代替'keyup blur'使用'change'事件:

$("#resetPassword input").on('change', function() { ... }; 
+0

谢谢!它的工作原理:) –

+0

很高兴帮助。顺便说一句,如果你需要监视输入变化,再次不要使用'keyup blur'等,而是使用'input'事件。例如,如果您右键单击并粘贴一些文本,也会触发。你可以测试它[这里](https://jsfiddle.net/dq5ddnvv/)。 – skobaljic

+0

明白了!非常感谢您的帮助! –

0

编辑你的事件监听:$("#resetPassword input").on('change', function() { //your code goes here };

+0

我已经修复了最后一个答案。非常感谢! –

+0

@SophiaWu Upvote它至少如果你觉得它有用。 – hamzox

+0

我投了赞成票,但似乎没有在网页上显示。 –

相关问题