0

チェックボックスについて質問です。

リンクされたフィドルには、2 つのチェックボックスがあります。両方(車、バス)のチェックボックスを選択した場合、「Checkall」チェックボックスも選択する必要があります。

状態を切り替えるコード:

$('.checkAll').change(function() {
    $('.chc').attr('checked', $( this ).is( ':checked' ) ? 'checked' :'');
});

以下は完璧に機能します:( jquery-ui 1.9.1およびjquery 1.4.2で)

デモ: http://jsfiddle.net/nUwfB/

しかし、 jquery 1.4.2バージョンを削除してjquery 1.8.3を追加すると、機能しません。

デモ: http://jsfiddle.net/dSCfp/

4

1 に答える 1

0

.attr()メソッドが変更されましたchecked( > v1.6 では、チェックボックスのプロパティで正しく機能しなくなりました)。

jQuery 1.6 以降、.attr() メソッドは、設定されていない属性に対して undefined を返します。さらに、.attr() は、プレーン オブジェクト、配列、ウィンドウ、またはドキュメントでは使用しないでください。DOM プロパティを取得および変更するには、.prop() メソッドを使用します。

代わりに.prop()メソッドを使用してください(文字列ではなくブール値を受け入れます)。

$(document).ready(function() {
    $('.checkAll').change(function() {
        $('.chc').prop('checked', $(this).is(':checked'));
    });

    $("#slctble").selectable({
        filter: 'td',
        cancel: 'td:not(.isaretle)',
        stop: function() {
            $(".ui-selected input", this).each(function() {
                this.checked = !this.checked
            }); //end-ui-selected input
            $('.chc').length == $('.chc:checked').length ? $('.checkAll').prop('checked', true) : $('.checkAll').prop('checked', false);
        } //endStopFunction
    }); //endSelectable
});​

動作しないフィドルを更新: http://jsfiddle.net/dSCfp/1/

于 2012-11-20T13:43:34.373 に答える