[英]jQuery Validate plugin not validating an element that's not a form input
我需要使用jQuery Validation Plugin来验证组合框组件: jqxComboBox
。 此组件应用于div
。 所以定义
<div id="component_id" />
$( "#component_id" ).jqxComboBox({...});
$("#component_id" ).rules( "add", {
required: true,
messages:{
required: "Field is required"
}
});
引发以下异常: Cannot read property 'nodeType' of undefined
。 我认为应该是由于我在div上应用了验证规则。
该组件生成隐藏以保存选定值的输入类型。 我也尝试将验证规则应用于该隐藏组件,但这不起作用:当隐藏组件没有任何价值时,也会提交表单。
$('input[type=hidden][name=myName]').rules( "add", {
required: true,
messages:{
required: "Field is required"
}
});
有人可以给我一些解决方法的提示吗?
报价OP:
“我需要使用jQuery Validation Plugin来验证组合框组件:jqxComboBox。此组件应用于div。”
如您所知,您不能使用jQuery Validate来验证div
。 您只能验证<form>
容器内的input
, select
和textarea
元素。
报价OP:
“此组件将生成一个隐藏的输入类型,以保存选定的值。我还试图在该隐藏的组件上应用验证规则,但这不起作用:当隐藏的值没有值时,也会提交表单。”
将值放在隐藏的输入元素中是可以接受的解决方法。
但是,默认情况下,jQuery Validate插件将忽略所有隐藏的输入元素。 只需将ignore
选项更改为[]
即可忽略“无”。 在您的.validate()
调用中设置ignore
选项,以及其他任何/所有其他选项。
$('#yourform').validate({
// your other options, rules and callbacks,
ignore: [] // <- ignore nothing - validate hidden elements
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.