jquery-1.10.2.js:1472未捕获错误:语法错误,无法识别的表达式:label [for ='team []'],label [for ='team []'] *,#team [] - 错误

时间:2018-04-11 05:43:31

标签: javascript jquery jquery-validate bootstrap-multiselect

我在select元素和jquery validate插件中使用multiselect js插件来验证表单元素。

我知道这是因为select元素[]属性中存在“name”,导致此错误,但我想启用多个选择。

当我删除“[]”时,它工作正常..

这是我的HTML:

<div class="form-group">
    <label class="col-sm-4 control-label" for="internal_team">Team <span class="input-required">*</span></label>
         <div class="col-sm-7">
              <select name="team[]" class="form-control multiselect-ui" multiple>
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              </select>
         </div>
</div>

这是我的jquery验证:

rules: 
{
   "team[]": "required"
},
messages:
{
     "team[]": "Please select team",
}

我该如何解决这个问题? 很感谢任何形式的帮助。感谢。

2 个答案:

答案 0 :(得分:2)

您是否尝试过分配ID以选择标记并使用多选方法检索值?

<select name="team[]" class="form-control multiselect-ui" id="team" multiple="multiple">

$('#team').multiSelect()

答案 1 :(得分:1)

你必须转义[],因为jQuery认为它是一个属性选择器。

$("label[for='team[]'], label[for='team[]'] *, #team[]-error")

应该是

$("label[for='team[]'], label[for='team[]'] *, #team\\[\\]-error")

<强>演示

$("label[for='team[]'], label[for='team[]'] *, #team\\[\\]-error")
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>