我在我正在构建的表单上使用jQuery验证插件(http://docs.jquery.com/Plugins/Validation)。该表格由6个字段组成,每个字段包含3个用于电子邮件地址,名字和姓氏的文本输入。标记的简化版本如下:jQuery验证 - 基于其他字段更改“必需”属性
<form id="ref" action="submit.php" method="post">
<fieldset id="ref_1">
<input id="ref_1_email" type="text" />
<input id="ref_1_fname" type="text" />
<input id="ref_1_lname" type="text" />
</fieldset>
<fieldset id="ref_2">
<input id="ref_2_email" type="text" />
<input id="ref_2_fname" type="text" />
<input id="ref_2_lname" type="text" />
</fieldset>
<fieldset id="ref_3">
<input id="ref_3_email" type="text" />
<input id="ref_3_fname" type="text" />
<input id="ref_3_lname" type="text" />
</fieldset>
</form>
等等,直到ref_6。但是,用户不一定需要完成每个字段 - 他们可能只会选择填写fieldset#ref_1和fieldset#ref_2内的输入,并将其他字段留空。但是,例如,如果他们输入了ref_1的电子邮件,则还需要ref_1的名字和姓氏。所以我需要做的是检查一个字段集中的所有3个输入。如果它们全部是空白的,则可以忽略它们,但是如果其中一个输入被填充,则两个邻居也必须完成。到目前为止,我所有的尝试都非常麻烦(注意每个人的改变,然后评估是否空着......),任何帮助都会很大,非常感谢。
感谢
更新:
我发现一个帖子有类似的问题,有建议的解决方案之中:
$('#emailToName2').keyup(function() {
$('#emailToAddress2').toggleClass('required', $(this).val());
});
但这需要重复对每个输入上述逻辑,这对我来说似乎有点矫枉过正。什么会是一个更动态的方法?
干杯!
感谢您的建议。我试图完成这项工作,但它似乎对其他“相关”字段应用一类“有效”,而不管它们是否为空。有任何想法吗? – AlvinRow 2009-11-16 15:36:17
如果第一部分中的其他字段中有一个值具有值,则此示例实际上只是使第一部分中的电子邮件处于必需状态。在'blur'事件处理程序可以正常工作之前,您需要为其他字段设置类似的规则... – bdukes 2009-11-16 19:07:47