望着文檔在這裏:http://docs.jquery.com/Plugins/Validation/Reference#Fields_with_complex_names_.28brackets.2C_dots.29 用於連接規則來輸入數組的語法是這樣的:jQuery驗證與未知的數組鍵
rules: {
"user[email]": "email",
但是在我的情況下,數組鍵是數值,並可能有任何價值,但我仍然希望將規則附加到領域。我動態添加輸入字段使用jQuery(key
是一個全局變量):
$('a#addfield').click(function(e)
{
e.preventDefault();
var data = '<p><input type="file" name="field['+key+']"></p>';
$('div#inputcontainer').append(data);
});
樣本HTML輸出:
<p><input name="field[19]" type="file"></p>
<p><input name="field[22]" type="file"></p>
<p><input name="field[25]" type="file"></p>
我試圖定義這樣的規則:
rules:
{
'field[]': {
required: true,
extension: "pdf|doc|docx"
}
}
(從這個答案採取:jquery validate add rules for an array input編輯:這種建議的方式設置規則'field[]'
不適用於驗證插件。請參閱下面的答案和評論。 )
但是當我嘗試添加其他文件類型時沒有驗證錯誤...有什麼建議嗎?
從我記得,'jQuery.validate'不支持多個領域的驗證與像,同樣的名稱,而不是即使你刪除括號內的數字(發送給大多數後端語言時可以執行此操作)。嘗試使用'$('input')。rules(「add」,{required:true,extension:「pdf | docx?」})' – 2013-03-12 13:56:04
謝謝!輸入字段會動態添加,因此我無法使用您的建議,因爲輸入不在DOM中。另外,我使用數組鍵來跟蹤表單中的許多內容,所以我不能只設置'name =「field []」',這將與驗證一起工作... – jtheman 2013-03-12 14:01:23
使用'.rules(「add 「,{})'爲每個動態生成的字段。沒有其他選擇不涉及醜陋的黑客。 – 2013-03-12 14:02:24