jquery checked checkbox IE problem

I'm having an issue verifying if a checkbox is checked using jquery on Internet Explorer. This is the code I'm using:

if ($('#chkjq_1').attr('checked') == true)

It works fine on Firefox or Chrome, but on Internet Explorer 7, the condition is always false because the browser sets the property this way:

<input id="chkjq_1" type="checkbox" CHECKED/> IE7

And the right way is the following: (Firefox, Chrome):

<input id="chkjq_1" type="checkbox" checked="checked"/> FF, Chrome, etc

What should I do to avoid this issue on Internet Explorer 7; is there a generic way in jquery to solve this?

Thanks in advance.


尝试这个:

if ($('#chkjq_1').is(':checked'))
{
  // more code
}

The only thing I could get to work consistently was to test like this:

if ($('#chkjq_1').is('[CHECKED]'))

Using all caps on the selector like IE renders it when you open Developer Tools. Works across browsers so far as I can tell. .is(':checked') wouldn't match for me (using JQuery 1.7.1). Tested using IE 7 and IE 8 in multiple modes. Other browsers (Firefox, Safari tested) seem not to care.


"change" event of checkbox in IE is triggered weirdly.

This can be solved as:- 1.) bind the onclick event of input checkbox to required target function to be fired 2.) in the target function, check the status of the checkbox by checking the "checked" attribute via-

if ($('#chkBox').attr("checked") == "checked"){
      // do something ----or .attr("checked", "checked"); ---for another checkbox
}else{
      // do something else ----or .removeAttr("checked"); ---for another checkbox
}
链接地址: http://www.djcxy.com/p/55790.html

上一篇: 检查复选框是否被选中JavaScript

下一篇: jquery checked复选框IE问题