我需要用jQuery验证插件来验证一个组合框组件: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"
}
});有人能给我一些关于如何解决这个问题的提示吗?
发布于 2014-07-02 16:32:52
Quote OP:
“我需要用jQuery验证插件来验证一个组合框组件: jqxComboBox。这个组件应用在div上。”
正如您所了解的,您不能使用jQuery验证来验证div。您只能验证input、select和textarea容器中的元素。
Quote OP:
“此组件生成隐藏的输入类型以保存选定的值。我还尝试对该隐藏组件应用验证规则,但这不起作用:当隐藏没有值时,也提交表单。”
将值放入隐藏的输入元素中是一个可接受的解决方法。
但是,默认情况下,jQuery验证插件将忽略所有隐藏的输入元素。只需将ignore选项更改为[],以忽略"nothing“。在ignore调用中设置.validate()选项以及任何/所有其他选项。
$('#yourform').validate({
// your other options, rules and callbacks,
ignore: [] // <- ignore nothing - validate hidden elements
});Documentation:http://jqueryvalidation.org/validate/#ignore
https://stackoverflow.com/questions/24536044
复制相似问题