我有一个表单,当有人希望(例如)将“添加另一个成人”添加到一个家庭时,动态添加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."
}});
...标识选择框,抛出错误。
行为是一致的。添加了几个选项,并以上面显示的方式向其中任何一个添加规则会引发错误。
我会提到所有选择框都有一个初始选项,其值为“”,因此所需的验证应该可以正常工作。
但当然,它永远不会有机会。添加规则时会引发错误。
有谁知道为什么会这样?
答案 0 :(得分:4)
对于选择,您应使用select[name=foo]
代替input[name=foo]
:
$("select[name='state" + counter + "']").rules("add", {required:true, messages: {required:"Please enter a state."
}});