基于选择框值的文本框验证的最佳实践是什么

时间:2013-02-28 11:16:21

标签: jquery jquery-validate

我有一个基于选择框值的选择框我需要检查文本框是否强制。我已经完成了jQuery验证,但我的问题是我从数据库中获取选择框的值我将名称保留为值,id作为选择框的键。我有选择框

<select name="selectBox1" class="default textbox-select" tabindex="2">
 <option value="">Select</option>
 <option value="1">A</option>
 <option value="2">B</option>
 <option value="3">C</option>
 </select>



<input type="text" name="email" class="textbox-cont-regular"/> 

如果我选择值B意味着只有电子邮件文本框应该是强制性的。我根据硬代码值进行写入验证2.是最佳实践还是任何改进我自己的想法。因为任何一个更改db中的值意味着我的验证不起作用?或者我将根据文本(“B”)编写验证。哪个是最佳做法?

2 个答案:

答案 0 :(得分:1)

选择不会改变的验证标准,以便将来不会出现问题。所以在这种情况下,我建议你使用文本选项,如果那不会改变

答案 1 :(得分:1)

为了将来证明你可以拥有这样的数据库结构。

Value Text IsMandatory
----------------------
1     A    false     
2     B    true
3     C    false

然后使用你的服务器端标记代码生成(php / asp.net等),你可以生成一些像这样的HTML

<select id="selectBox1" name="selectBox1">
 <option value="">Select</option>
 <option value="1">A</option>
 <option value="2" data-mandatory="true">B</option>
 <option value="3">C</option>
</select>

然后您可以指定您的规则,如

rules : {
 email : {
  required: "#selectBox1 option[data-mandatory]:selected"
 }
}

使用此结构,您可以更改数据库中的id值或文本,而无需触摸标记或验证代码。您还可以更改使文本框成为必填项的值的数量,或将它们全部设为可选等。

fiddle to demonstrate this approach here