繁体   English   中英

使用jQuery.validate进行Select2设置未定义错误

[英]Select2 settings undefined error with jquery.validate

我使用Select2作为下拉菜单。 即使单击内部下拉菜单,我也会收到以下错误:

在此处输入图片说明 仅当我在窗体外部使用select2时,才会发生此错误,而在窗体外部它运行正常。

这是我的代码:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
    <script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

<script type="text/javascript">
    $("#ddlUsers").select2();
</script>
<form class="form-horizontal">
    <div class="form-group">
          <label class="col-sm-2 control-label">Add User</label>
          <div class="col-sm-10">
               <select id="ddlUsers" class="form-control" multiple="multiple">
                   <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                </select>
           </div>
     </div>
     <div class="form-group">
           <div class="col-sm-offset-2 col-sm-10">
               <button type="button" onclick="onAddclick();return false;" class="btn btn-primary">Add User</button>
            </div>
      </div>
</form>

在Select2示例中,您是否尝试过这种方法,所以它们使用类来定义选定的选项,因为jQuery可能将ID属性用于其他用途。

另外,标签通常与输入字段具有相同的ID。

“检查”图像显示JavaScript / jQuery代码生成了六(6)个错误。

在此处输入图片说明

至少有两(2)个错误归因于有关“设置”的TypeError。 由于此代码未包含在原始帖子中,因此很难通过提供的信息来诊断您的问题。

查看“检查”显示的错误诊断信息,并进行代码更改以避免这些错误。

如果不是这种情况,我不是100%,但是当表单包含动态添加的元素(不是由jQuery.validate .validator初始化(未设置Validator属性/对象))时,会发生此错误。 然后,作为验证过程的一部分,访问新元素的.validator对象的.settings属性,但不存在。 我建议立即在向DOM添加任何新元素之后立即尝试在表单上运行.validate()方法。

暂无
暂无

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

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