2

ここに私のセットアップがあります:radiobutton1ページがロードされたときに既にチェックされている場合 (checked="checked"ソースが表示されています)、 を選択した後にチェックを外そうとすると、 を選択した後radiobutton2checked属性radiobutton1が削除されませんradiobutton2:

if($('#' + radiobutton1_ID).is(':checked'))
    UncheckRadioButton('#' + radiobutton2_ID);

// Utility function to clear a radiobutton's "checked" attribute
function UncheckRadioButton(radiobuttonID) {
    radiobuttonID.removeAttr("checked"); 
}

radiobutton2「ソースの表示」を選択して実行した後checked="checked"radiobutton2ページにはこのボタンがチェックされていると表示されていても)表示されず、radiobutton1まだ表示されていますchecked="checked"。何故ですか?それは逆であるべきです。


アップデート

これが私のコードの一部です。ifステートメントの部分がヒットしていることはわかっているので、それは問題ではありません。また、使用しているラジオ ボタン ID ( ccRadioBtncheckRadioBtnおよびpaypalRadioButton) が正しいこともわかっています。

    var ccRadioBtn = ccRadioButton; // credit card radio button ID
    var paypalRadioButton = payPalRadioClientID;

    // ...

    if (paypalIsSelected()) {
        UncheckRadioButton(checkRadioBtn);
        UncheckRadioButton(ccRadioBtn);

        // ...
    } else {
        // force a clear on any previously selected payment options
        CheckRadioButton(ccRadioBtn); // default to credit card radio button
        UncheckRadioButton(paypalRadioButton);
        UncheckRadioButton(checkRadioBtn);

        // ...
    }
}

function UncheckRadioButton(radiobuttonID) {
    $('#' + radiobuttonID).removeAttr("checked"); 
}

function CheckRadioButton(radiobuttonID) {
    $('#' + radiobuttonID).attr('checked', true);
}

問題は次のとおりです。あるラジオ ボタンがデフォルトでchecked="checked"別のラジオ ボタンをクリックすると、最初のラジオ ボタンのchecked属性が削除されますが、そうではありません。そして、選択された 2 番目のラジオ ボタンには、当然のことながら [いいえ] がありませんchecked="checked"。これは、ページのソースを表示するとわかります。なぜそれが機能しないのかわかりません。

4

1 に答える 1

5

ここに文字列を渡しています:

UncheckRadioButton('#' + radiobutton_2_ID);

しかし、ここでjQueryオブジェクトとして使用しようとしています:

radiobuttonID.removeAttr("checked");
//which is actually doing this:
"#something".removeAttr("checked"); //.removeAttr() is not a function for string

セレクターとして使用するには、次のようにラップする必要があります。

$(radiobuttonID).removeAttr("checked");

ソースの表示に関しては...ブラウザによって異なります。たとえば、IE では、現在表示している状態ではなく、ページの元のソースが表示されます。

于 2010-07-15T22:36:27.697 に答える