使用jquery验证插件验证select

时间:2013-11-03 10:21:36

标签: jquery jquery-validate

我有一个html选择,默认值为-1。

  <select id="BusinessDistrictId">
       <option value="-1">Select one...</option>
       //other options...
  </select>

我想强制用户选择-1值以外的任何选项。 我的jquery验证规则 -

  rules: {
         BusinessDistrictId: { required: true , min:0}
        }

但它不起作用。有什么建议吗?

2 个答案:

答案 0 :(得分:20)

如果你想用jQuery Validate插件验证这个元素,它的标记有两个问题......

<select id="BusinessDistrictId">
    <option value="-1">Select one...</option>
    //other options...
</select>

1)根据jQuery Validate插件的要求,每个元素必须具有唯一的name属性。当规则在.validate()内声明时,它们由name标识。但是,无论规则如何声明,每个元素仍必须具有唯一的name属性,因为这是插件跟踪表单元素的方式。

2)您的min: 0规则只是针对损坏的required规则的解决方法。要在required: true元素上使用<select>,您必须在第一个value=""元素上使用<option>属性;所以在您的情况下,required规则将始终被忽略。由于您拥有min: 0规则,因此您获得的类似验证结果需要选择项目。即使在第一个value=""上使用option属性,在required元素上同时具有minselect规则也没有逻辑意义。

这是正确的代码......

<强> HTML

<select id="BusinessDistrictId" name="BusinessDistrictId">
    <option value="">Select one...</option> <!-- first option contains value="" -->
    //other options...
</select>

<强>的jQuery

rules: {
    BusinessDistrictId: {  // <-- this is the name attribute
        required: true
    }
},

DEMO:http://jsfiddle.net/y82dV/

答案 1 :(得分:1)

添加name =“BusinessDistrictId”解决了我的问题。