我在我正在構建的表單上使用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