I noticed a small bug with Internet Explorer 7 (and probably the rest of the versions) using the jQuery change() method. Don’t ask me why, but it seems that IE remembers a change, but doesn’t register it until one click after the change actually occurred. I’ve set up a little demo of what I’m talking about here. Of course if you look at the demo in Firefox, Safari, Opera, or Chrome both examples will work perfectly fine. But if you look at it in IE 7 you’ll see that the .click example works fine, but the .change example requires you to click an extra time to get the change to actually take place.
I don’t mean to be insensitive, but this is a change event. I might understand this not working in IE 6. This is IE 7. It was released in October 2006 according to Wikipedia. That’s just a couple years ago. This is a change event! This is the last day of 2009! It probably doesn’t even work in IE 8!
Granted HTML standards do state: “The onchange event occurs when a control loses the input focus and its value has been modified since gaining focus. This attribute applies to the following elements: INPUT, SELECT, and TEXTAREA.” So first of all, according to the standards, we shouldn’t even be attaching the change event to a radio input, and second of all the change event actually occurs on blur. So it seems that IE is maybe kind of following the rules here. I just think it’s unfortunate that the only rule IE is following is the one rule that just doesn’t make a lot of sense to begin with.
Seriously, with just a touch of common sense Firefox, Safari, Opera, and Chrome uses the change method appropriately.
I wanted to get this post off before the end of the year so I can start the new out fresh, happy, and IE free (for a while). And one last thing. If you happened to look at the demo and it opened in Internet Explorer by default, please – for the love of God download Firefox, Opera, or Chrome. All are free and cross platform. Even safari is not half bad on a PC.
HAPPY NEW YEAR!!!