JQuery验证插件禁用属性错误 [英] Jquery validate plugin disabled attribute bug
本文介绍了JQuery验证插件禁用属性错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一组html输入:复选框项。其中一项具有已禁用属性。 预期的行为是,jQuery验证插件将忽略已禁用属性的输入,但将处理未禁用的其他元素的验证。
<input type="checkbox" name="example[]" value="1" minlength="1" required="required" disabled="disabled" />
<input type="checkbox" name="example[]" value="2" minlength="1" required="required" />
<input type="checkbox" name="example[]" value="3" minlength="1" required="required" />
我已经创建了一个活生生的示例来演示该行为。http://jsfiddle.net/cVMBA/24/
预期行为是在本例中至少选中了一个复选框。如果不是,则应出现错误。 尽管在我看来,他的行为真的很奇怪。如果您查看控制台,您可以看到,首先触发了errorPlacement函数,然后触发了unHighlight函数。所以这里的问题是没有显示错误。
当您删除属性Disable="Disable"时,插件将正常工作。 有什么想法,或者可能是黑客来推翻这一行为?
推荐答案
插件在disabled="disabled"
属性方面工作正常,如下所示:http://jsfiddle.net/4fShN/
关于您的代码:
$('#test_validate').validate({
ignore : [],
unhighlight : function(element, errorClass, validClass){
$('#test_validate').removeClass('error-highlighted');
},
errorPlacement: function(error, element) {
$('#test_validate').addClass('error-highlighted').find('.error-div').text('Select radio button');
},
submitHandler: function(form) {
alert('form ok');
}
});
您缺少highlight
回调函数,它是unhighlight
回调函数的补充。您应该注意到,errorPlacement
仅在最初放置错误label
元素时触发。如果要随错误一起切换,则应使用highlight
和unhighlight
函数。
此外,您的代码将类应用于$('#test_validate')
,它包含<form>
元素的id
。通常,使用包含的element
参数从<input>
元素中应用&;删除出现错误的类。
highlight : function(element, errorClass, validClass){
$(element).addClass('error-highlighted');
},
unhighlight : function(element, errorClass, validClass){
$(element).removeClass('error-highlighted');
},
为了更简单,只需定义validClass
和errorClass
选项即可删除上述代码。为什么它们可以被移除呢?因为上述两个函数与默认插件行为基本相同。
errorClass: "error-highlighted",
validClass: "valid"
参见文档:http://jqueryvalidation.org/validate
这篇关于JQuery验证插件禁用属性错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文