4

これは私のフォームです:

<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>

これは、送信ボタンをクリックした後にすべての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;
    }

しかし、これはそれが印刷されているものです:

  • ホラ
  • 未定義
  • 未定義

これらの値を取得する予定の場合:

  • ホラ
  • text @'+ 1 + ^ + 1
  • boolean @'+ 3 + ^ + 1

私は何が間違っているのですか?

前もって感謝します!

4

4 に答える 4

5
  • children要素の直下の子のみを選択する$('form').find('input')か、必要な場合$('form').find('input[id]')、ID を持つもののみを取得する場合、または$('form').find('input:visible')表示されている (つまり、非表示でない) もののみを取得する場合。
  • そこに着いたら、 で簡単に実行できthis.idますeach。または、jQuery を使用して、$(this).attr('id').
  • 無効な ID があります。無効な文字が含まれているだけでなく、2 番目の入力のように複製することもできません。すべてのちんぷんかんぷんのポイントは何ですか?

なんらかのクライアント側の検証またはスタイリングを行う場合、入力のフィールド タイプを示すスマートな方法が多数あります。通常はクラスを使用しますが、HTML5 のカスタム属性またはフィールド タイプを使用することもできます。booleanXXXID は、情報を入れたい場所ではありません。HTML仕様には次のように書かれています:

ID および NAME トークンは文字 ([A-Za-z]) で始まり、その後に任意の数の文字、数字 ([0-9])、ハイフン ("-")、アンダースコア ("_") が続く場合があります、コロン (":")、およびピリオド (".")。

于 2012-04-18T17:55:55.913 に答える
4

説明

attr()ID を取得するには、jQuery 関数を使用する必要があります。

jQuery.attr()一致した要素のセットの最初の要素の属性の値を取得します。

サンプル

alert(child.attr('id');

詳しくは

于 2012-04-18T17:55:58.420 に答える
2

childjquery オブジェクトなので、プロパティはありませんid

これを使用する必要があります:

  $('form').children().each(function(){
        var child = this;
        alert(child.id);

またはこれ:

  $('form').children().each(function(){
        var $child = $(this);
        alert(child.attr('id'));

$jQuery 変数にのプレフィックスを追加する必要があります。

これを読んでください:
jQuery の変数で $ を使用する特定の理由はありますか

于 2012-04-18T17:55:53.667 に答える
1

注: ID が無効です

        $('form input').each(function(){
            alert(this.id);
        });
于 2012-04-18T17:56:22.413 に答える