我在验证是否在Internet Explorer上使用jquery检查了复选框时遇到问题。 这是我正在使用的代码:
if ($('#chkjq_1').attr('checked') == true)
它在Firefox或Chrome上运行正常,但在Internet Explorer 7上,条件始终为false,因为浏览器以这种方式设置属性:
<input id="chkjq_1" type="checkbox" CHECKED/> IE7
正确的方法如下:(Firefox,Chrome):
<input id="chkjq_1" type="checkbox" checked="checked"/> FF, Chrome, etc
我应该怎么做才能在Internet Explorer 7上避免此问题;在jquery中有一种通用的方法可以解决这个问题吗?
提前致谢。
答案 0 :(得分:17)
试试这个:
if ($('#chkjq_1').is(':checked'))
{
// more code
}
答案 1 :(得分:3)
我唯一能够始终如一地工作的是像这样测试:
if ($('#chkjq_1').is('[CHECKED]'))
使用IE上的选择器上的所有大写字母在打开开发人员工具时呈现它。据我所知,跨浏览器可以正常工作。 .is(':checked')对我来说不匹配(使用JQuery 1.7.1)。在多种模式下使用IE 7和IE 8进行测试。其他浏览器(Firefox,测试过Safari)似乎并不关心。
答案 2 :(得分:1)
IE中的“更改”复选框事件很奇怪。
这可以解决为: - 1.)将输入复选框的onclick事件绑定到要触发的所需目标函数 2.)在目标函数中,通过 -
选中“checked”属性来检查复选框的状态if ($('#chkBox').attr("checked") == "checked"){
// do something ----or .attr("checked", "checked"); ---for another checkbox
}else{
// do something else ----or .removeAttr("checked"); ---for another checkbox
}