0

私は ASP.NET アプリを持っており、jQuery を使用していくつかのフィールドの有効化を切り替えています。UI の大まかな図を次に示します。

__ チェックボックス1
o
ラジオ1 o ラジオ 2
テキスト 1
テキスト2

チェックボックス 1 をオンにすると、radio1 と radio2 が有効になります。radio2 を選択すると、text1 と text2 が有効になります。

私の場合、ユーザーがチェックボックスをオンにしてラジオボタンが有効になった後、ユーザーがradio2を選択してフォームを送信すると、選択は自動的にradio1に戻ります。

jQuery を使用してラジオ ボタンを動的に有効にしないと、この問題は発生しません。したがって、ラジオ ボタンを有効にする方法が、ASP.NET のラジオ ボタンの操作方法とうまく機能しないかどうか疑問に思っています。

チェックボックスの値が変更されたら、コードで次のヘルパー メソッドを呼び出します。ASP.NET は無効なラジオ ボタンの周りに を追加するため、スパンと入力の両方で無効フラグを必ずオフにします。

function setRadioEnabled(id, enabled) {
    var radio = jQuery(id);
    var parentSpan = radio.parent();
    if (enabled) {
        parentSpan.removeAttr('disabled');
        radio.removeAttr('disabled');
    } else {
        radio.attr('disabled', 'disabled');
        parentSpan.attr('disabled', 'disabled');
    }
}

ラジオ ボタンは ASP:RadioButton タグとして定義され、別のテーブル行にある場合でも GroupName を共有します。これにより、名前の値が一致する 2 つの入力 type=radio インスタンスが生成されます。

ポストバック メソッドにブレークポイントを設定し、radio1.Checked の値が true で、radio2.Checked が false であることを確認することで、ページが送信されたときにラジオがリセットされていることを確認しました。ページでラジオ ボタンの値が切り替わる原因は何ですか?

前もって感謝します、デビッド

4

0 に答える 0