不引人注意的验证基于以下想法:在用户提交表单之前,您不进行表单验证;一旦发生这种情况,如果表单上的某些内容无效,那么一旦用户更改了每个字段,就会立即对其进行验证。
我想要做的是在表单元素上“不引人注意地”触发验证 - 也就是说,如果用户已经尝试提交表单,仅验证表单元素。所以我可以触发元素的验证(我在更改某个复选框时执行此操作),如下所示:
$('#chkNoPersonId').change(function(){
$('#lstPersonId').valid();
});
但麻烦的是始终会导致lstPersonId
被验证,并且无效时会显示错误,即使用户尚未提交表单一次< / em>的。我希望只有在用户尝试提交表单后才能对其进行验证。是否有一些价值我可以检查用户是否尝试提交表单,或者其他方式我可以实现此行为?
答案 0 :(得分:5)
您可以在提交按钮上添加标记,以识别表单提交是否已被点击。 例如:
$('#submitButn').click(function(){
$(this).attr('data-submitted','true');
});
在输入检查天气的每次验证中,该标志是否为真,并执行验证逻辑。
$('#chkNoPersonId').change(function(){
if( $('#submitButn').attr('data-submitted')=='true'){
$('#lstPersonId').valid();
}
});
在清除或重置表单时,您可以删除该属性
$('#submitButn').removeAttr('data-submitted');
答案 1 :(得分:1)
您是否尝试过使用submit
事件处理程序?
$("form").submit(function() {
//validate here
});
<强>源:强> http://api.jquery.com/submit/