首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery验证插件,而不是验证非表单输入的元素

jQuery验证插件,而不是验证非表单输入的元素
EN

Stack Overflow用户
提问于 2014-07-02 16:09:39
回答 1查看 1.6K关注 0票数 0

我需要用jQuery验证插件来验证一个组合框组件:jqxComboBox。此组件应用于div。所以定义

代码语言:javascript
复制
<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应用了验证规则。

此组件生成隐藏的输入类型以保存选定的值。我也尝试在这个隐藏组件上应用验证规则,但是这是行不通的:表单也是在隐藏没有值时提交的。

代码语言:javascript
复制
$('input[type=hidden][name=myName]').rules( "add", {
    required: true,                  
    messages:{
        required: "Field is required"
    }
});

有人能给我一些关于如何解决这个问题的提示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-02 16:32:52

Quote OP:

“我需要用jQuery验证插件来验证一个组合框组件: jqxComboBox。这个组件应用在div上。”

正如您所了解的,您不能使用jQuery验证来验证div。您只能验证inputselecttextarea容器中的元素。

Quote OP:

“此组件生成隐藏的输入类型以保存选定的值。我还尝试对该隐藏组件应用验证规则,但这不起作用:当隐藏没有值时,也提交表单。”

将值放入隐藏的输入元素中是一个可接受的解决方法。

但是,默认情况下,jQuery验证插件将忽略所有隐藏的输入元素。只需将ignore选项更改为[],以忽略"nothing“。在ignore调用中设置.validate()选项以及任何/所有其他选项。

代码语言:javascript
复制
$('#yourform').validate({
    // your other options, rules and callbacks,
    ignore: []  // <- ignore nothing - validate hidden elements
});

Documentationhttp://jqueryvalidation.org/validate/#ignore

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24536044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档