1
我有一個表單,用戶可以添加他打算購買/銷售的物品。我有相應的驗證規則如下:動態輸入數組元素的JQuery驗證
rules: {
'items[][name]': {
required: true
},
'items[][description]': {
required: true
},
'items[][rate]': {
required: true,
number: true
},
'items[][quantity]': {
required: true,
number: true
}
}
errorPlacement: function (error, element) {
error.appendTo('#' + element.attr('id') + '_error');
}
現在,用戶也可以增加新項目的形式的能力。爲此,我克隆第一行並將其追加到最後一行。相應的代碼如下:
var $clone = original.clone().removeAttr('id'); // original is the initial first row of items
$clone.find(':text') // get the text inputs
.val('') // reset their values
.removeClass('error'); // remove the error classes if any
/*
* I have an error span corresponding to each input where I display the errors.
* Here, i get the input and span elements, split them in two groups, then
* add a random seed to each of them to get a unique id to be used by jQuery errorHandler to place the error
*/
var $formElements = $clone.find('input:text, span'),
$even = $formElements.filter(':even'),
$odd = $formElements.filter(':odd');
for (var i = 0; i < $even.length; i++) {
var idParts = $($even[i]).attr('id').split('__');
var seed = Date.now();
$($even[i]).attr('id', idParts[0] + seed + '_' + idParts[1]);
$($odd[i]).attr('id', idParts[0] + seed + '_' + idParts[1] + '_error');
}
我的問題是:
- >只有第一項行,創建靜態,被驗證。
我知道jQuery驗證器需要每個字段的唯一名稱。但是,在這種情況下,我需要一些項目。無論如何,即使新創建的項目字段具有相同的名稱,所以不應該自動驗證?
如果不是,那麼通過維護一系列項目是什麼工作?
在此先感謝。
使用索引像這個小提琴http://jsfiddle.net/cjqvnnho/1/ – illusionist