仅在表单已提交时才触发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/