0

問題:

クリック時またはクリックなしでjQueryを使用してラジオボタンからIDを取得するには。jQueryは、値がすでに設定されているかどうかを検出して選択するか、クリック時に選択する必要があります。

HTMLコード(シナリオ1-選択は行われません):

<th><input type="radio" name="itemquestion" id="1" value="11"></th>
<th><input type="radio" name="itemquestion" id="2" value="12"></th>
<th><input type="radio" name="itemquestion" id="3" value="13"></th>
<th><input type="radio" name="itemquestion" id="4" value="14"></th>
<th><input type="radio" name="itemquestion" id="5" value="15"></th>

HTMLコード(シナリオ2-選択が行われました):

<th><input type="radio" name="itemquestion" id="1" value="11"></th>
<th><input type="radio" name="itemquestion" id="2" value="12" checked="checked"></th>
<th><input type="radio" name="itemquestion" id="3" value="13"></th>
<th><input type="radio" name="itemquestion" id="4" value="14"></th>
<th><input type="radio" name="itemquestion" id="5" value="15"></th>

jQueryコード:

$('input[type=radio]', $('#itembuttons')).click(
    function() {
        var pos = $(this).parent().index() + 1;
        $('#itemresponse').val(pos);
    }
);

質問:

どのようにjQueryを変更して、click()に作用するだけでなく、送信時にどのラジオボタンがすでにチェックされているかを検出し、そのID(この場合は2)を返すことができますか?つまり、ユーザーはラジオボタンをクリックせずにフォームを送信できますが、#itemresponseにID値2を含める必要があります。

4

4 に答える 4

1

フォームに.submitイベントハンドラーを追加します。次のようになります。

$('#myform').submit(function(){
    var $selected = $('input[type="radio"]​​​​:checked');
    //Extract the value you need here either $selected.attr('id'); or whatever
});

.checkedセレクターを使用します

注:送信時にどのラジオボタンがすでにチェックされているかを言い、そのIDを返すとはどういう意味かわかりません。

どのidが参照しているのか(id属性?親とインデックスで計算を行ったため)わからないので、関数にコメントを入れて、そこで必要な計算を行います。

幸運を!

于 2012-06-11T13:26:40.410 に答える
1

フォームを送信する前に、ラジオボタンがチェックされているかどうかを確認する必要があります。次のようなものを試してください。

$('#form').on('submit', function(e){
    if($('input[type=radio]:checked', $('#itembuttons')).length > 0){
        //Checked, do nothing
        //var pos = $('input[type=radio]:checked').attr('id');
    }else{
        //Not checked: Append an input
        $('#form').append('<input type="hidden" name="itemquestion" value="2" />');    
    }
});​​​​​​
于 2012-06-11T13:31:40.357 に答える
1

あなたが両方を求めていたように完全性のために。

ロード時に選択を保存します(で指定John Lawrence):

$(document).ready(function () {
    var selected_id = $('input[type="radio"]:checked').attr("id");
    $('#itemresponse').val(selected_id);
});

ユーザーが選択を変更します:

$('input[type="radio"][name="itemquestion"]').click(
    function() {
        var pos = $(this).attr('id');
        $('#itemresponse').val(pos);
    }
);

デモ

于 2012-06-11T13:33:02.307 に答える
1

ユーザーがラジオボタンをクリックする前にデータを入力する場合は、これを追加して、ページが読み込まれるときの値を設定できます。

$(document).ready(function () {
    var selected_id = $('form input[type=radio]:checked').attr("id");
    $('#itemresponse').val(selected_id);
}
于 2012-06-11T13:34:13.790 に答える