0

jQuery または HTML でいくつかの問題に直面しています。

私はいくつかのチェックボックスを持っています。そして、「プライマリ」チェックボックスが必要なので、「プライマリ」がチェックされると、そのカテゴリの下のいくつかのチェックボックスがチェックされます。

まあ、それは大丈夫です。私はこのようにそれを解決しました:

    $('#extraPolish').change(function() {
    if ($("#extraPolish").is(':checked') == true) {
        $("#extraPolish_Inside").attr('checked', 'checked');
        $("#extraPolish_UnderFender").attr('checked', 'checked');
        $("#extraPolish_OverFender").attr('checked', 'checked');
        console.log('checkd');
    } else {
        $("#extraPolish_Inside").removeAttr('checked');
        $("#extraPolish_UnderFender").removeAttr('checked');
        $("#extraPolish_OverFender").removeAttr('checked');
    }
});

したがって、#extraPolish をオンにすると、その下にあるものがオンになり、#extraPolish のチェックを外すと、それらはオフになります。

問題は、それらをもう一度チェックしようとすると、HTML コードに表示されますが、Google Chrome ではチェックされません。

何か案が?

4

4 に答える 4

0

代わりに.prop('checked', false);andを使用してください。.prop('checked', true);

$(document).ready(function () {
    $('#extraPolish').change(function() {
        if ($("#extraPolish").is(':checked') == true) {
            $("#extraPolish_Inside").prop('checked', true);
            $("#extraPolish_UnderFender").prop('checked', true);
            $("#extraPolish_OverFender").prop('checked', true);
            console.log('checkd');
        } else {
            $("#extraPolish_Inside").prop('checked', false);
            $("#extraPolish_UnderFender").prop('checked', false);
            $("#extraPolish_OverFender").prop('checked', false);
        }
        return false;
    });
});

jsFiddle の例

詳細な説明と、jQuery 1.9 以前で動作が異なる理由については、http://jquery.com/upgrade-guide/1.9/#attr-versus-prop-を参照してください。

于 2013-02-20T18:32:42.430 に答える
0

の代わりに$("#extraPolish_Inside').prop('checked', true);andを使用してみてください$("#extraPolish_Inside').prop('checked', false);$("#extraPolish_Inside").attr('checked', 'checked');

編集: jsfiddle の例 - http://jsfiddle.net/rvtvr/1

于 2013-02-20T18:17:11.873 に答える