gpt4 book ai didi

javascript - 隐藏元素的 jQuery 选择器,除了

转载 作者:行者123 更新时间:2023-11-28 19:31:02 25 4
gpt4 key购买 nike

默认情况下,jQuery Validation ignores hidden elements :

ignore (default: ":hidden")

Type: Selector

Elements to ignore when validating, simply filtering them out. jQuery’s not-method is used, therefore everything that is accepted by not() can be passed as this option. Inputs of type submit and reset are always ignored, so are disabled elements.

这是来自 jquery.validate.js 的相关代码:

elements: function() {
var validator = this,
rulesCache = {};

// select all valid inputs inside the form (no submit or reset buttons)
return $( this.currentForm )
.find( "input, select, textarea" )
.not( ":submit, :reset, :image, [disabled]" )
.not( this.settings.ignore )
.filter( function() {
// snip
});
}

我遇到的问题是由于我也在使用 TinyMCE。当 TinyMCE 应用于文本区域时,它会隐藏文本区域并在其位置创建一个 iframe。这意味着 jQuery 验证默认会忽略它。

我可以通过将忽略选项的值更改为 null 来强制验证拾取隐藏的文本区域:

$("#myform").validate({
ignore: null
});

不幸的是,这在我的页面上造成了巨大的性能问题,该页面有数百个隐藏的输入字段。这太糟糕了,它实际上使 Chrome 和 IE 崩溃了(Firefox 是冠军,但仍然很慢)。

我认为解决这个问题需要一个用于隐藏元素的 jQuery 选择器除了那些具有特定类名的元素,或者类似这样的东西:

$("#myform").validate({
ignore: ':hidden(:not(textarea.tinymce))'
});

我意识到这是一个无效的选择器。有这样的选择器吗?如果没有,是否有更好的方法,我不会告诉 jQuery 验证忽略除 TinyMCE 隐藏的元素之外的所有隐藏元素?

最佳答案

特殊选择器通常位于其他选择器之后(除了 notis 以及其他一些情况:

":hidden:not(textarea.tinymce)"

关于javascript - 隐藏元素的 jQuery 选择器,除了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26792172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com