0

チェックボックスをオンまたはオフにする必要があります。しかし、うまく機能していません。

例: 1 回目のロードでステータスがアクティブの場合:

  • チェックボックスのチェックを外して非アクティブにする(正常に動作します)
  • もう一度チェックしてアクティブにします(機能していない、チェックを外したままです)

例: 1 回目のロードでステータスが非アクティブの場合:

  • チェックボックスをアクティブにチェックする(正常に動作します)
  • チェックボックスのチェックを外して非アクティブにする(正常に動作します)
  • もう一度チェックしてアクティブにします(機能していない、チェックを外したままです)

ここに私のサンプルコードがあります:

var statusCheck = $('.status-box');

$.ajax({
    url: 'sample/url',
    type: 'POST',
    data: {
        user_id: ids,
        status: statusVal
    },
    success: function (response) {
        if (response == 'ok') {
            $.each(statusCheck, function () {
                var _this = $(this);

                if (_this.is(':checked')) {
                    _this.removeAttr('checked');
                } else {
                    _this.attr('checked', '');
                }
            });
        }
    }
});
4

2 に答える 2

2
var statusCheck = $('.status-box')

$.ajax({
        url     : 'sample/url',
        type    : 'POST',
        data    : { user_id: ids, status: statusVal },
        success : function( response ) {
            if( response == 'ok' ) {
                $.each(statusCheck, function(){
                    var _this    = $(this);

                    if( _this.is(':checked') ) {
                        _this.removeAttr('checked');
                    } else {
                        _this.attr('checked', 'checked');
                             // ...............^ here ^
                    }
                });
            }
        }
    });

これを試して:_this.attr('checked', 'checked');

また.prop()、このリンクから魔法がかかるかもしれません;)

于 2013-07-14T09:47:00.477 に答える
2

JQuery でチェックボックスをオンまたはオフにする際に問題 (奇妙な異常) がありました。.attrandを使用し.removeAttrていましたが、に変更すると.prop('checked',false/true)問題が解決しました。

jQuery 1.6 より前では、一部の属性を取得するときに .attr() メソッドがプロパティ値を考慮に入れることがあり、一貫性のない動作を引き起こす可能性がありました。jQuery 1.6 以降、.prop() メソッドはプロパティ値を明示的に取得する方法を提供し、.attr() は属性を取得します。 参照:

を使用する必要があることに注意してくださいJQuery 1.6 +

于 2013-07-14T09:48:27.057 に答える