0

我必须选中和取消选中复选框。但它运作不佳。

示例:当状态在第一次加载时处于活动状态时:

  • 取消选中复选框为非活动状态(工作正常)
  • 再次检查以使其处于活动状态(不工作,保持未选中状态)

示例:当状态在第一次加载时处于非活动状态时:

  • 将复选框选中为活动状态(工作正常)
  • 取消选中复选框为非活动状态(工作正常)
  • 再次检查以使其处于活动状态(不工作,保持未选中状态)

这是我的示例代码:

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 选中和取消选中复选框时遇到问题(奇怪的异常)。我正在使用.attr.removeAttr当我将其更改为时,.prop('checked',false/true)我解决了问题。

在 jQuery 1.6 之前,.attr() 方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致。从 jQuery 1.6 开始,.prop() 方法提供了一种显式检索属性值的方法,而 .attr() 检索属性。 参考:

请注意,您应该使用JQuery 1.6 +.

于 2013-07-14T09:48:27.057 回答