0

私はこのコントロールをjavascriptで持っていますが、変更を加えるたびに実行されないように見えるため、何かが間違っています。何が起こっているかを確認できるように、アラートを設定しました。私は何を間違っていますか?

controlToSetcontrol1はチェックボックスでcontrol2、ラジオボタンです。

function SetValues(controlToSet, control1, control2) {

    if (control1.is(':checked') && control2.is(':checked')) {
        $(controlToSet).attr('disabled', 'disabled');
        $(controlToSet).attr('checked', false);
        alert('checked and checked');
    }

    if (control1.is(':checked') && control2.is(':checked') == false) {
        $(controlToSet).attr('disabled', false);
        alert('checked an unchecked');
    }

    if (control1.is(':checked') == false && control2.is(':checked') == false) {
        $(controlToSet).attr('disabled', 'disabled');
        $(controlToSet).attr('checked', false);
        alert('unchecked and unchecked');
    }
}

これらのコントロールは Web アプリケーションで使用され、他のコントロールのいずれかに依存しており、テーマの 1 つがこれらの JavaScript コードが実行するはずの値を変更しているときに、これが常に発生しているわけではありません。私は何を間違っていますか?

4

3 に答える 3

0

control1.is(':checked') == false && control2.is(':checked') の場合を忘れましたか?

于 2013-03-22T13:17:40.887 に答える
0

お使いのブラウザが JavaScript のキャッシュ バージョンを使用している可能性があります。ブラウザのキャッシュをクリアするか、ブラウザを再起動してみてください。

于 2013-03-22T13:16:47.323 に答える
0

変更を行ったときにコードを実行する場合は、changeイベントをキャッチする必要があります。

バインディング機能の変更を使用できます。

control1.add(control2).change(function(){
     SetValues(controlToSet, control1, control2)
});
于 2013-03-22T13:16:50.550 に答える