5

フォームの1行にすべての入力要素を取得するにはどうすればよいですか?たとえば、以下のコードスニペットには、チェックボックスとテキスト入力ボックスがあります。これらの両方の入力タイプの値を取得し、div id="hist"要素を含む次のtd要素でユーザーに表示したいと思います。

   <tr><td>Head</td>
            <td><input type="text" name="headH" id="headH" ></td>
            <td><input class="NA" type="checkbox" name="headNA" id="headNA" value="N/A"></td>
            <td><div class="hist"></div><%=Utils.getMeasurementsCreateDiv1("Head","H",num) %>
            </td></tr>
        <tr><td>Neck</td>
            <td><input type="text" name="neckH" id="neckH" ></td>
            <td><input class="NA" type="checkbox" name="neckNA" id="neckNA" value="N/A"></td>
            <td><div class="hist"></div><%=Utils.getMeasurementsCreateDiv1("Neck","H",num) %></td>
        </tr>
        <tr><td>UE</td>
            <td><input type="text"name="uEH" id="uEH"></td>
            <td><input class="NA" type="checkbox" name="ueNA" id="ueNA" value="N/A"></td>
            <td><div class="hist"></div><%=Utils.getMeasurementsCreateDiv1("UExt","H",num) %></td>

また、5つのラジオボタンとそれに接続されたテキスト入力ボックスがあります。これらはすべて同じ行にありませんが、「pain1」要素と「cerCommentH」要素の値を取得して表示したいと思います。以下は単なるコードスニペットであることに注意してください。私のフォームにはそのような要素がいくつかあるので、それらの「id」を使用して個別に操作することはできません。

   <tr>
            <td>Mech</td>
            <td>
                <input type="radio" name="pain1" value="Pain a">Pain a
                <input type="radio" name="pain1" value="Pain b">Pain b

            </td></tr>  
            <tr><td></td>
            <td>
                <input type="radio" name="pain1" value="Pain c">Pain c  
                <input type="radio" name="pain1" value="Pain d">Pain d
                <input type="radio" name="pain1" style="display:none;" value="">
                <input type="button" value="Clear" onclick="document.history.pain1l[4].checked = true;">
        </td>
        <td><div class="hist"></div><%=Utils.getMeasurementsCreateDiv1("Cehi","H",num) %></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="radio" name="pain1" value="Other">Other
                <input type="text" name="cerCommentH" id="cerCommentH">
            </td>
            <td></td>
            <td></td>
        </tr>

よろしくお願いします。

4

4 に答える 4

4

おそらく、それぞれで何かをしたいと仮定します。

$('tr:has(input)').each(function() {
   var row = this;
   var values = "";
   $('input', this).each(function() {
      values =  values + "," + $(this).val() 
   });
   values = "<div>(" + values.substring(1) + ")</div>";

   $('.hist', row).html(values); 
});
于 2012-06-12T14:37:50.073 に答える
0

serialize() の方法が必要な場合は、次のようにします。

var result = '';
$('tr input').each(function(){
    result += $(this).attr('name')+'='+$(this).val()+'&'
})
//post result after all
于 2012-06-12T14:35:24.770 に答える
0
//suppose trid is the id of the tr element
var all = $('#tr input');
//or if tr has no id, but table does have a id 'table1'
var tr = $('input', '#table1 tr:first');
于 2012-06-12T14:35:29.920 に答える
0

それを配列にシリアル化して、serializeArray を使用してデータとして jquery ajax メソッドに直接入力できます。

var rowIndex = 1; // row index to pull
// select all inputs that you desire to send, then use serializeArray();
var data = $("tr").eq(rowIndex).find("input").serializeArray();
$.post(url,data,onDoneHandler);
于 2012-06-12T14:38:12.757 に答える