我有一个html选择,默认值为-1。
<select id="BusinessDistrictId">
<option value="-1">Select one...</option>
//other options...
</select>
我想强制用户选择-1值以外的任何选项。 我的jquery验证规则 -
rules: {
BusinessDistrictId: { required: true , min:0}
}
但它不起作用。有什么建议吗?
答案 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
元素上同时具有min
和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
}
},
答案 1 :(得分:1)
添加name =“BusinessDistrictId”解决了我的问题。