我必须选中并取消选中复选框。但它运作不佳。
示例:当第一次加载时状态为活动时:
示例:当第一次加载时状态为非活动状态:
以下是我的示例代码:
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', '');
}
});
}
}
});
答案 0 :(得分:3)
我在使用JQuery检查和取消选中复选框时遇到了问题(奇怪的异常)。我使用.attr
和.removeAttr
,当我将其更改为.prop('checked',false/true)
时,我解决了问题。
在jQuery 1.6之前,.attr()方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致。从jQuery 1.6开始,.prop()方法提供了一种显式检索属性值的方法,而.attr()则检索属性。 Reference:
请注意,您应该使用JQuery 1.6 +
。
答案 1 :(得分: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');
此Link的.prop()
也可以发挥魔力;)