我尝试在提交之前获取所有输入元素name="choices"
。我想在提交表单之前检查这些元素的值。
问题是获得0,1,2,而不是获得undefined
(3次)的元素值。
形式
<form action="/check" method="post" id="mform1" >
<div id="id_poll_choices" >
A). <input type="text" name="choices" value="0"><br>
B). <input type="text" name="choices" value="1"><br>
C). <input type="text" name="choices" value="2"><br>
</div>
<input type="submit" id="id_submit" value="Submit"/>
</form>
jquery的
$('#mform1').submit(function(){
$( "input[name*='choices']" ).each(function(index, elm){
alert(elm.val)
});
});
警告显示undefined
。
这可能是什么问题?
答案 0 :(得分:3)
elm
是一个DOM元素。它没有任何val
属性。
替换
alert(elm.val)
与
alert($(elm).val())
或
alert(elm.value) // better
一些注意事项:
还要注意id:只有一个元素可以拥有给定的id。
您应该使用"input[name='choices']"
代替"input[name*='choices']"
作为选择器。两者都在这里工作,但一个更快,更有选择性。除非你的元素当然应该有不同的名称(这是单选按钮的一般做法)
this
console.log
代替alert
(read more)所以我建议这个
$('#mform1').submit(function(){
$( "input[name='choices']" ).each(function(){
console.log(this.value);
});
});
答案 1 :(得分:0)
尝试:
$('#mform1').submit(function(){
$( "input[name*='choices']" ).each(function(index, elm){
alert(elm.value);
});
});
的 DEMO FIDDLE 强>
注意:不要对所有输入使用相同的ID。 Id应该是唯一的。