首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与验证插件结合使用的jQuery UI选择

与验证插件结合使用的jQuery UI选择
EN

Stack Overflow用户
提问于 2012-04-05 17:36:49
回答 2查看 4.1K关注 0票数 3

我想验证我的选择框,但是因为我使用jQuery UI来设置我的选择框的样式,所以它不起作用。

Jquery UI在display上设置了真正的选择框: none,所以这就是它不能工作的原因,请参阅:

但是我怎样才能让它与jQuery UI选择框插件一起工作呢?

我希望有人有一个可行的解决方案。:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-05 20:15:58

这是因为selectMenu隐藏了select。默认情况下,validate不验证隐藏元素。您可以通过将ignore选项设置为[]来更改此设置

代码语言:javascript
复制
$(".valid").validate({
    meta: "validate",
    ignore: [],
    groups: {
        checks: checkbox_names
    },
    errorPlacement: function(error, element) {
        if (element.attr("type") == "checkbox")
            error.insertAfter(element.parent().siblings().last());
        else if (element.is("select")) {
            error.insertAfter(element.next("a.ui-selectmenu"))
        }
        else error.insertAfter(element);
    }
});

正如您所注意到的,更改selectMenu不会重新验证输入。您可以通过点击selectMenu上的change事件并手动重新验证元素来解决此问题:

代码语言:javascript
复制
// SELECTBOXES
$(function() {
    $('.dataTables_length input, select').not("select.multiple").selectmenu({
        style: 'dropdown',
        transferClasses: true,
        width: null,
        change: function() {
            $(".valid").validate().element(this);
        }
    });
});

示例: http://jsfiddle.net/8YvSN/

票数 8
EN

Stack Overflow用户

发布于 2018-06-11 14:15:54

代码语言:javascript
复制
change: function() {
   $("#validate-form-name").validate().element(this);
};

这可以很好地工作。

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

https://stackoverflow.com/questions/10026176

复制
相关文章

相似问题

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