无法使用 select2 读取在 jQuery 验证上未定义的节点名称的属性



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

$(".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 验证。但似乎$(这(总是导致"无法读取未定义的nodeName的属性"错误。

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

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


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


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

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

你只能将 jQuery 验证应用于selecttextarea、某些inputcontenteditable元素...没有别的。

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


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

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

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

相关内容

  • 没有找到相关文章

最新更新