在尝试从JQuery中的表单元素中打印id值时,为什么会出现"未定义"?

Luc*_*cas 4 forms iteration jquery undefined

这是我的表格:

<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@&#39;+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@&#39;+3+^+1" name="respuesta[1].respuesta" type="radio" value="true"/>
                <label for="boolean@'+3+^+1">Si</label>
                <br />
                <input id="boolean@&#39;+3+^+1" name="respuesta[1].respuesta" type="radio" value="false"/>
                <label for="boolean@'+3+^+1">No</label></td>
        </tr>
    </table>
</div>
Run Code Online (Sandbox Code Playgroud)

这是在单击提交按钮后打印所有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;
    }
Run Code Online (Sandbox Code Playgroud)

但这是它的印刷品:

  • 你好
  • 未定义
  • 未定义

当我希望得到这些值:

  • 你好
  • 文字@'+ 1 + ^ + 1
  • 布尔@'+ 3 + ^ + 1

我究竟做错了什么?

提前致谢!

Pao*_*ino 5

  • children只选择元素的直接子元素,你想要$('form').find('input')$('form').find('input[id]')只获取那些有ID 的元素,或只获取那些可见的元素$('form').find('input:visible')(即,不隐藏).
  • 一旦出现,你可以简单地做this.ideach.或者,通过jQuery , $(this).attr('id').
  • 您有无效的ID - 它们不仅具有无效字符,您不能像第二次输入那样复制它们.所有的胡言乱语都有什么意义?

如果您正在进行某种客户端验证或样式化,有许多更智能的方法来表示输入中的字段类型,最常见的是通过类,还可以通过HTML5中的自定义属性或字段类型.ID肯定不是您想要放置booleanXXX信息的位置.HTML规范说:

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(" - "),下划线("_") ,冒号(":")和句号(".").