1

私はcheckBoxでこのようなことをしたい。ユーザーがチェックボックスをクリックすると、その状態が変更されます (チェック済み -> チェックなしおよび vv. )。

私のコード:

$('#checkBoxStandard').change(function() {
    clickedFormBoxen('standard');
});


function clickedFormBoxen(active){
if(active == 'standard'){

    if( $('#checkBoxStandard').is(":checked")){

        $('#checkBoxStandard').prop("checked", false);

    }else{

        $('#checkBoxStandard').prop("checked", true);
    }

    console.log('ac: '+$('#checkBoxStandard').is(':checked'));
}

残念ながら、チェックボックスが再びオフになることはありません。最初はチェックボックスがチェックされていますが、もう一度クリックしても何も起こらず、チェックされたままです。

ユーザーの操作だけでなく、関数呼び出しによってチェックボックスの状態を変更できるように、このコードを使用したいと考えています。

私を助けてください、私の英語でごめんなさい^^

4

3 に答える 3

1

試す

$('#checkBoxStandard').removeAttr("checked");
于 2013-07-11T16:55:56.967 に答える
0

あなたの質問に対する私のコメントで言及したように、あなたの関数clickedFormBoxenを使用すると、チェックボックス要素に対するユーザー操作の影響を効果的に元に戻すことができます。したがって、チェックボックス要素のクリック ハンドラーから変更ハンドラーを呼び出す必要があるようです (コードを少し簡素化しました)。

function clickedFormBoxen(active) {
    if (active == 'standard') {
        $('#checkBoxStandard').prop("checked", !($('#checkBoxStandard').prop("checked")));
    }
}

$(document).ready( function(){
    $('#checkBoxStandard').change( function(e) {
        clickedFormBoxen('standard');
        1;
    });

    $('#checkBoxStandard').click(function(e) {
        $('#checkBoxStandard').change();
        1;
    });
});
于 2013-07-11T18:31:24.113 に答える