簡體   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