JQuery动态输入数组元素的验证
JQuery Validation of Dynamic Input Array Elements
我有一个表单,用户可以在其中添加他打算购买/出售的物品。相应的验证规则如下:
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');
}
My Issues are:
->只验证静态创建的第一个项目行。
我知道jQuery验证器需要一个唯一的名称为每个字段。但是,在本例中,我需要一个项的数组。无论如何,即使是新创建的项字段也具有相同的名称,因此它们不应该被自动验证吗?
如果不是,那么通过维护项数组来解决什么问题??
那么维护一个项目数组的工作是什么?
它们必须每个都有唯一的name
。所以当你创建它们的时候,在name
上使用你的索引就像你在id
上做的那样。
item[1], item[2], etc.
同样,当您创建它们时,您将使用.rules('add')
方法向每个元素添加规则。
换句话说,您不能简单地克隆它们并期望一切都自动工作。
相关文章:
- 在函数中添加数组元素的数值
- 访问JSON对象内部的数组元素
- Mongoose-在更新中删除数组元素
- javascript数组元素是否知道其封闭数组
- 如何创建一个方法来验证数组的范围
- 将数组元素附加到FormData dos'不适用于Firefox 15
- 如何在javascript中使用click函数选择数组元素
- 如何在JavaScript中剥离数组元素中的非整数
- 消隐数组元素是否生成自己的属性
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 在Codrops的内容中添加数组元素展开缩略图网格预览
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 如何访问数组中的数组元素(JavaScript)
- 生成ACF标记位置的数组(元素列表后缺少])
- validate.js验证数组元素
- Javascript验证净数组元素的和为零
- 如何在Mongoose中验证数组,同时验证其元素
- Jquery手动验证输入数组元素
- JQuery动态输入数组元素的验证
- 通过文本框获取数组元素(JS验证)