繁体   English   中英

无法使用select2读取jQuery验证上未定义的nodeName属性

[英]Cannot read property of nodeName undefined on jQuery validation with select2

我试图在我的select2下拉列表中添加jQuery验证。 但是,它一直导致javascript异常“ nodeName undefined”,我不确定出了什么问题。

 $(".field-validation-required").each(function() {

     // output SELECT, if current html class is a select2 dropdown.
     console.log(this.nodeName); 

     $(this).rules('add', {
        required: true,
        messages: {
          required: "This field is required"
        }
     }); 
 });

我的select2下拉列表包含类'.field-validation-required',并且我正在尝试对其应用一些jQuery验证。 但是,似乎$(this)总是导致“无法读取nodeName未定义的属性”错误。

我的select2下拉列表包含.field-validation-required.field-validation-required并且我正在尝试对其应用一些jQuery验证。 但是,似乎$(this)总是导致"Cannot read property of nodeName undefined"错误。

向我们展示相关的HTML标记; 否则,我无法复制您的错误。


您的原始select是否包含唯一name 这是插件要求的, name丢失或重复可能是错误消息的根本原因。


您的.field-validation-required类是在原始select元素上还是在动态创建的Select2元素上?

如果它在select元素上,那么它应该可以工作。 如果它在Select2元素上,那么它将无法工作。

您只能将jQuery Validate应用于selecttextarea ,某些inputcontenteditable元素...别无其他。

定位到原始的隐藏select元素,而不是Select2元素。 然后,由于该插件将忽略所有隐藏的元素,因此您需要将ignore选项设置为某些jQuery选择器,该选择器不会忽略您的隐藏的select元素。 例如, ignore: []将告诉插件什么也不忽略,并验证所有隐藏的元素。


或者,您可以按类别或HTML5属性将required规则应用于原始的select元素。 您仍然需要如上所述设置“ ignore选项。

<select name="myselect" class="required" ....

要么

<select name="myselect" required="required" ....

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM