1

チェックボックスがオンになっているときに実行したいこのコードがあります。b) ページの読み込み時に実行して、デフォルトで非表示になっているセクションを展開する必要があることを確認します。

$(document).ready(function () {
    $('#hasContractorFlag').on('change', function () {
        if ($(this).is(':checked')) {
            $('#hasContractor').show();
        } else {
            $('#hasContractor').hide();
        }
    });
});

上記にイベントを追加しようとしましたloadが、トリガーされていませんでした。

私はこれに似たことができることを知っています、そしてそれはうまくいくでしょう:

$(document).ready(function () {
    noAddress($('#hasContractorFlag'))

    $('#hasContractorFlag').on('change', function () {
        noAddress($(this));
    });

    function noAddress(var field) {
        if ($(field).is(':checked')) {
            $('#hasContractor').show();
        } else {
            $('#hasContractor').hide();
        }
    };
});

これを達成するための最良のアプローチは何ですか?

4

4 に答える 4

5

ドキュメントの準備ができているメソッドに追加.change();すると、メソッドが呼び出されます。

jsFiddle: http://jsfiddle.net/UQDaW/5/

$(document).ready(function () {
    $('#hasContractorFlag').on('change', function () {
        if ($(this).is(':checked')) {
            $('#hasContractor').show();
        } else {
            $('#hasContractor').hide();
        }
    }).change(); // .change() will execute this method
});
于 2012-05-08T16:09:12.390 に答える
2

trigger('change')私は通常、変更イベントの作成にチェーンを付けることでこれを達成します

$(document).ready(function () {
    $('#hasContractorFlag').on('change', function () {
        if ($(this).is(':checked')) {
            $('#hasContractor').show();
        } else {
            $('#hasContractor').hide();
        }
    }).trigger('change');
});
于 2012-05-08T16:10:23.787 に答える
0
$(document).ready(function () {
    $('#hasContractorFlag').on('change', function () {
        $('#hasContractor')[$(this).is(':checked')?'show':'hide']();
    }).change();
});
于 2012-05-08T16:07:26.603 に答える
0

あなたはこれを試すことができます:

function noAddress(field) {
  field.is(':checked') ? $('#hasContractor').show() :  $('#hasContractor').hide();
};

すべて一緒に:

$(document).ready(function() {
    $('#hasContractorFlag').on('change load', function() {
        noAddress($(this));
    });
    function noAddress(field) {
        field.is(':checked') ? $('#hasContractor').show() : $('#hasContractor').hide();
    }
});

デモ

于 2012-05-08T16:06:10.647 に答える