无法在 metronic 管理主题中使用 jquery 取消选中复选框

Unable to check uncheck a checkbox using jquery in metronic admin theme

我正在为我的一个项目使用 metronic 管理主题。

http://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469

我必须根据数据库中的数据选中或取消选中复选框,但问题是我无法使用 jquery 在 metronic 主题中选中或取消选中复选框。我已经尝试了两种方法来使用 prop 和 attr 来完成这项任务,但对我来说没有任何效果。 如果我 运行 在我的自定义网页上使用相同的代码,它工作得很好。

$("#checkbox").prop("checked",true);
$("#checkbox").attr('checked',false);
$("#checkbox").attr('checked','checked');

我也是用的metroic主题,没有出现过这样的问题: 我认为问题可能是您的 'unchecked' 和 'checked' 不匹配;我的意思是 is:you 应该

var checked = $(this).is(":checked");
$.each(function() {
  if (checked) {
     $(this).prop("checked", true);//or $(this).attr("checked", true);
  } else {
     $(this).prop("checked", false);//or $(this).attr("checked", false),can't use $(this).removeAttr('checked');
  }
});

如果你使用 removeAttr,你应该

$(this).attr('checked', 'checked');
$(this).removeAttr('checked');

如果以上方法都不起作用,您可以尝试:

$(this)[0].checked=true;// when I use ,find return array,so add [0];
$(this)[0].checked=false;

如果您使用的是 metronic,请尝试在 prop 之后添加此行:

$.uniform.update();

Metronic 主题使用统一库将标准表单元素修改为花式元素。如果您使用 jquery 选中或取消选中元素,它会更新但不会反映在前端。要在前端更新此操作,您需要使用统一库进行更新。

$.uniform.update() 根据更新的操作重新设置元素样式。

$(this).iCheck('uncheck');

$(this).iCheck('check');

可以找到here

解决此问题的最佳方法是在 Angular Js 循环中使用时为输入复选框添加 class。

这非常有效: