1

我有一个基于选择框值的选择框,我需要检查文本框是否强制。我已经完成了 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”)编写验证。哪个是最佳实践?

4

2 回答 2

2

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

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 值或文本,而无需触摸您的标记或验证代码。您还可以更改使文本框成为必需的值的数量,或将它们全部设为可选等。

小提琴在这里演示这种方法

于 2013-02-28T15:36:29.957 回答
1

为您的验证选择不会改变的标准,这样您将来就不会遇到问题。所以在这种情况下,如果那不会改变,我建议你使用 text 选项

于 2013-02-28T11:33:18.910 回答