当动态添加select时,jQuery验证错误

时间:2012-10-23 21:36:11

标签: jquery validation

我有一个表单,当有人希望(例如)将“添加另一个成人”添加到一个家庭时,动态添加HTML块。

我希望每个字段都有一个唯一的名称,所以我使用的是一个计数器:第一个成人的第一个名字字段是'firstName1',第二个是'firstName2',依此类推。

因为我想向字段添加自定义消息(并且Validate插件没有messages()方法),所以我尝试在将HTML添加到DOM后立即添加规则。

这适用于文本输入,但会为选择元素引发错误 - “TypeError:d未定义”。

例如:

$("input[name='city" + counter + "']").rules("add", {required:true, messages: {required:"Please enter a city."
}});

......工作正常。但是......

$("input[name='state" + counter + "']").rules("add", {required:true, messages: {required:"Please enter a state."
}});

...标识选择框,抛出错误。

行为是一致的。添加了几个选项,并以上面显示的方式向其中任何一个添加规则会引发错误。

我会提到所有选择框都有一个初始选项,其值为“”,因此所需的验证应该可以正常工作。

但当然,它永远不会有机会。添加规则时会引发错误。

有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:4)

对于选择,您应使用select[name=foo]代替input[name=foo]

$("select[name='state" + counter + "']").rules("add", {required:true, messages: {required:"Please enter a state."
}});