2017-05-08 63 views
0

我有这个代码让系统使用“email:true”来测试输入的有效电子邮件地址。它工作在第一次尝试点击保存按钮后,但在未来的人,在进入单个字符没有点击保存按钮的是,它已经测试输入和显示错误消息已经javascript来测试有效的电子邮件地址

$("#RoleConfigForm").validate({ 
      rules: { 

       "group_code[]": { 
        required: true, 
        maxlength: 25, 
       }, 
       "role_name[]": { 
        required: true, 
        maxlength: 25, 
       }, 

       "email_address[]": { 
        required: true, 
        email: true, 
        maxlength: 30, 


       }, 
      }, 
      errorClass: "invalid", 
      errorPlacement: function (error, element) { 
       $('#ResultDialog p').html("@hmis_resources.Message.msg_empty_fields"); 
       $('#ResultDialog').modal(); 
      }, 
      submitHandler: function (form) { 
       ajaxFormSubmit(); 
      } 
     }); 
+1

这是jquery验证的行为。直到电子邮件不正确,它会显示错误信息 –

+0

有没有办法解决这个问题? – rickyProgrammer

回答

1

“懒惰“与”渴望“验证。

jQuery验证是“懒惰”,所以你观察到的是正常的默认行为。

As per the docs here

默认情况下,形式验证的提交,用户点击提交按钮或者当表单输入集中(选项的onsubmit)按下Enter键触发。另外,一旦字段突出显示为无效,只要用户在字段中键入内容(选项onkeyup),就会对其进行验证。当用户在有效字段中输入无效内容时,该字段也会在字段失去焦点时进行验证(选项onbluronfocusout)。

And here:场被标记为无效

  • 之前,验证是懒惰:之前提交表单的第一次,用户可以通过没有得到烦人的信息字段标签 - 在有机会实际输入正确值之前,他们不会被窃听

编辑

要禁用KEYUP和完全的onblur验证...单击该按钮时

$('#myform').validate({ 
    onkeyup: false, 
    onfocusout: false, 
    .... 

形式将只验证。

+0

有没有解决方法来防止这种情况? – rickyProgrammer

+0

@rickyProgrammer,参见编辑答案。 – Sparky

+0

onkeyup:错误的作品!谢谢! – rickyProgrammer

相关问题