无法在 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。
这非常有效:
我正在为我的一个项目使用 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。
这非常有效: