字段,允许街道号,名称,单独的字段, 市 </跨度> ,州和拉链。地址本身是表单的可选输入(用户可能选择不输入地址),但我想确保如果:‘错误’, errorElement:‘label’, submitHandler:function(){ 警报(“表格已提交”); 返回false; }, 团体:{ 地址:“streetNumber streetName 市 </跨度> state zipcode锟
你可以尝试在中添加一个方法 unhighlight: 就像是
$('.error').removeClass(errorClass);
或定义相关的输入和做
$('.relatedInputs').removeClass(errorClass);
你也可以添加一个onChange函数
function(el){ if(el.val() == ''){ $('.relatedInputs').removeClass(errorClass); } }
您需要在焦点事件上添加一个函数,然后当用户离开该字段时,表单字段将更新。
这很难,因为你正在使用一个插件,所以所有的调用都发生在那里,但我觉得这样的事情会起作用:
var inputs = $('form').find('input'); inputs.focus(function () { inputs.each(function () { $(this).removeClass('error'); }); });
只需将其粘贴在验证初始化程序之外的代码中即可。
如果在验证器之外定义了errorCode变量,然后在两个函数中使用了该变量,那就更好了,如下所示:
var errorClass = 'error'; $('form').validate({ errorClass: errorClass, ... ... }); var inputs = $('form').find('input'); inputs.focus(function () { inputs.each(function () { $(this).removeClass(errorClass); }); });
通过使用这个,我能够获得所需的功能:
onfocusout: function(element) { var inputs = $(element).closest('form').find('input, select'); inputs.each(function() { if ($(this).valid()) $(this).removeClass('error'); }); }
这是受到另一篇文章和DoubleA的回答的启发。我没有彻底测试它,看它是否有任何退步,但到目前为止似乎有效。