jquery选中复选框IE问题

时间:2010-03-26 17:27:59

标签: jquery

我在验证是否在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中有一种通用的方法可以解决这个问题吗?

提前致谢。

3 个答案:

答案 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
}