ラジオボタンを選択するときに何かする

ラジオボタンが選択されているときにjqueryの助けを借りて何かを実行したいと思います。

ページにn個のラジオボタングループがあるとします

<input type="radio" name="group1" value="1" onSelect="jquery ajax" />
<input type="radio" name="group1" value="2" onSelect="jquery ajax" />
<input type="radio" name="group2" value="1" onSelect="jquery ajax"/>
<input type="radio" name="group2" value="2" onSelect="jquery ajax" />

等々 …

各onSelectはjquery
ajax呼び出しを開始するのと同じjs関数(jsForAjaxCall(args))を呼び出します。

ラジオボタンが選択または選択解除されると、jquery ajaxコールが必要になります。私は選択のためにそれを示した。

1)ラジオボタンの選択を解除するようなjavascriptコールを持つ方法は何ですか?それは未選択ですか?はいの場合は、すべてのブラウザと互換性がありますか?私は答えを見つけられませんでした。

2)ユーザーがラジオボタン(グループから1つのボタン)を1つ選択し、対応するajax呼び出しが行われたとします。

しかし、私はAJAXコールを次々に完了させたい。
Ajaxコール1が完了し、コール2が開始し、コール2が完了し、コール3が開始されます。

しかし、これは非同期性のために私が記述した状況では起こらないかもしれません ajaxの

だから、前のjquery
ajax呼び出しのコールバック関数に後続の呼び出しを残す必要があります。私はそれをする方法を見つけた

目標を達成するにはどうすればいいですか?

私のスクリプト言語はPHPです

編集:

ユーザがn個のラジオボタンを1つずつクリックすると(グループから1つのボタン)、各ボタンを選択するたびに、2次元セッション配列に選択されたラジオボタンの値を保持させるように同期ajax呼び出しが行われるため、ページをリフレッシュした後にこれらの値を使用してラジオボタンの選択を保持できます。その場合、最初に書き込まれたhtmlラジオボタンコードを変更する必要があります。

私の質問は:

ユーザーはn個のボタン(n = 10)をクリックしてから、ページを更新します。
5つの同期ajax呼び出しが行われ、残りのrはまだ作成されません。その後、ページをリフレッシュした後、最後の5つのラジオボタンの選択値が保持されますか?そのような状況にそれらを保持する方法ではない場合。

ベストアンサー

nyferの答えを基に、$ .ajaxの成功コールバックでajaxコールを連鎖させることができます:

$("input[name*='group1']").click(function(){
    $.ajax({

    success: function(){
        $.ajax({
            success:function(){
                $.ajax({});
            }
        });
    }
    });
});

これは一種の乱雑なコードなので、上に表示されているような無名関数とは対照的に、名前付き関数に成功コールバックを置くことにします。ここで、ボタンで1つのAjax呼び出しをクリックして質問にヒントを付ける場合は、ajax呼び出しをエンキューおよびデキューするキューを実装します。
clickイベント内のアイテムをエンキューし、処理するアイテムが残っているかどうかを確認するために、すべてのajax呼び出しの成功コールバックでキューを再訪します。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です