javascript - 仅当表单已提交时才触发 jQuery 表单验证?

标签 javascript jquery jquery-validate validation

非侵入式验证基于这样的想法,即在用户提交表单之前进行表单验证;一旦发生这种情况,如果表单上的某些内容无效,则在用户更改后立即验证每个字段。

我想做的是“不显眼地”触发对表单元素的验证——也就是说,在用户已经尝试提交表单时验证表单元素。所以我可以像这样触发一个元素的验证(当某个复选框被更改时我会这样做):

$('#chkNoPersonId').change(function(){
    $('#lstPersonId').valid();
});

但问题在于,这将总是导致lstPersonId 被验证并在无效时显示错误,即使用户尚未提交形成一次。我希望仅在用户尝试提交表单后才对其进行验证。是否有一些值我可以检查以查看用户是否已尝试提交表单,或者我可以通过其他方式实现此行为?

最佳答案

您可以在提交按钮上添加一个标志来标识表单提交是否已被点击。 例如:

$('#submitButn').click(function(){
   $(this).attr('data-submitted','true');
});

然后在每次输入验证中检查天气标志是否为真并执行您的验证逻辑。

$('#chkNoPersonId').change(function(){
  if( $('#submitButn').attr('data-submitted')=='true'){
   $('#lstPersonId').valid();
  }
});

在清除或重置表单时,您可以删除该属性

 $('#submitButn').removeAttr('data-submitted');

关于javascript - 仅当表单已提交时才触发 jQuery 表单验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16734177/

相关文章:

javascript - 如何在 Keen IO 查询中自定义一周的开始时间?

javascript - 听 EACCES : permission denied 0. 0.0.0:8080

javascript - 如何使用 jQuery 将焦点添加到已删除类的 div 中包含的输入

javascript - 仅验证类型单词英语或波斯语或数字?

jquery - 如何使用 jQuery 验证在 AJAX 调用后手动使字段无效

jquery-validate - 如何清除 jquery 验证错误

javascript - 使用请求 HTTP 客户端库发布到 FastSpring API

javascript - Chrome : JQuery animate; only appears to work when selected in developer tools

javascript - 使用 jQuery(或不使用)的简单 AJAX POST 请求提交表单

javascript - 当某些像素进入视口(viewport)时动画(Pen by Bramus)