仅在表单已提交时才触发jQuery表单validation?

不引人注意的validation基于这样的想法:在用户提交表单之前,您进行表单validation; 一旦发生这种情况,如果表单上的某些内容无效,那么一旦用户更改了每个字段,就会立即对其进行validation。

我想要做的是在表单元素上“不引人注意地”触发validation – 也就是说,如果用户已经尝试提交表单,则validation表单元素。 所以我可以触发元素的validation(我在更改某个复选框时执行此操作),如下所示:

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

但问题是, 即使用户尚未提交表单一次 ,也会导致lstPersonId被validation并在无效时显示错误。 我希望只有在用户尝试提交表单后才能进行validation。 是否有一些值我可以查看用户是否已尝试提交表单,或者其他方式我可以实现此行为?

您可以在提交按钮上添加标记,以识别已经单击的表单提交。 例如:

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

在输入检查天气的每个validation中,该标志是否为真,并执行validation逻辑。

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

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

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

您是否尝试过使用submit事件处理程序?

 $("form").submit(function() { //validate here }); 

来源: http //api.jquery.com/submit/