5

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

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

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

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

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

4

2 回答 2

21

如果你想用 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=""在 first 上有属性,在一个元素上option同时拥有 therequiredmin规则select也没有逻辑意义。

这是正确的代码...

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
    }
},

演示:http: //jsfiddle.net/y82dV/

于 2013-11-03T17:01:18.550 回答
1

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

于 2013-11-03T11:34:27.643 回答