这是我的表格:
<form action="/Admin/usuarios/obtener_valores" method="POST">
<div class="span-16">
<input type="hidden" value="1" name="usuarioPinIdHidden" id="usuarioPinIdHidden">
<table class="summary" style="border: none;">
<tr>
<td colspan="2">¿A que edad tuvo sus primeras vacaciones?</td>
</tr>
<tr>
<td colspan="2"><input id="text@'+1+^+1" name="respuesta[0].respuesta" type="text" value=""/></td>
</tr>
<tr>
<td colspan="2">¿Estaba casado en 1991?</td>
</tr>
<tr>
<td colspan="2"><input id="boolean@'+3+^+1" name="respuesta[1].respuesta" type="radio" value="true"/>
<label for="boolean@'+3+^+1">Si</label>
<br />
<input id="boolean@'+3+^+1" name="respuesta[1].respuesta" type="radio" value="false"/>
<label for="boolean@'+3+^+1">No</label></td>
</tr>
</table>
</div>
这是在单击提交按钮后打印所有id值的功能:
$(document).ready(function() {
$('form').submit(function (){
return verificarRespuestas();
});
});
function verificarRespuestas(){
alert('hola');
$('form').children().each(function(){
var child = $(this);
alert(child.id);
});
return false;
}
但这就是它的印刷品:
当我希望得到这些值时:
我做错了什么?
提前致谢!
答案 0 :(得分:5)
children
仅选择元素的直接子元素,您希望$('form').find('input')
或$('form').find('input[id]')
仅获取具有ID的内容,或$('form').find('input:visible')
仅获取那些是可见的(即,没有隐藏。)this.id
中执行each
。或者,通过jQuery,$(this).attr('id')
。 如果您正在进行某种客户端验证或样式化,有很多更智能的方法可以表示输入中的字段类型,最常见的是通过类,还可以通过HTML5中的自定义属性或字段类型。 ID肯定不是您要放置booleanXXX
信息的位置。 HTML规范说:
ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。
答案 1 :(得分:4)
您应该使用jQuery attr()
函数来获取ID。
jQuery.attr()获取匹配元素集中第一个元素的属性值。
alert(child.attr('id');
答案 2 :(得分:2)
child
是一个jquery对象,因此它没有id
属性。
你应该用这个:
$('form').children().each(function(){
var child = this;
alert(child.id);
或者这个:
$('form').children().each(function(){
var $child = $(this);
alert(child.attr('id'));
您应该在jQuery变量中添加$
的前缀。
阅读本文:
Is there any specific reason behind using $ with variable in jQuery
答案 3 :(得分:1)
注意:您的IDS无效
$('form input').each(function(){
alert(this.id);
});