非侵入式验证基于这样的想法,即在用户提交表单之前不进行表单验证;一旦发生这种情况,如果表单上的某些内容无效,则在用户更改后立即验证每个字段。
我想做的是“不显眼地”触发对表单元素的验证——也就是说,仅在用户已经尝试提交表单时验证表单元素。所以我可以像这样触发一个元素的验证(当某个复选框被更改时我会这样做):
$('#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/