Hi, can I get some feedback on this issue? Thanks.
On Jan 25, 10:17 am, Greg Glockner <greg.glock...@gmail.com> wrote:
> Hi, I have found some issues in how jQuery 1.3.1 handles checkboxes in
> XHTML. I created the following PHP sample based on jQuery FAQ 1.7:
>
> ------------
> <?php
> header('Content-type: application/xhtml+xml');
> print '<?xml version="1.0" encoding="iso-8859-1"?>' . "\n";
> ?>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> <title>Checkbox test</title>
> <script type="text/javascript"
> src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js">
> </script>
> </head>
> <body>
> <p>
> <input type="checkbox" id="c"/> I'll be checked/unchecked.
> <input type="button" value="Check"
> onclick='$("#c").attr("checked","checked")'/>
> <input type="button" value="Uncheck"
> onclick='$("#c").removeAttr("checked")'/>
> </p>
> </body>
> </html>
> ------------
>
> If you click the buttons, jQuery 1.3.1 changes the state of the
> checkbox. But if you click directly on the checkbox, then jQuery
> 1.3.1 does not change the state of the checkbox. For example, if you
> click on the checkbox to set it, the Uncheck button cannot clear it,
> and if you unclick on the box to clear it, the Check button cannot set
> it. This problem occurs in Firefox 3.0.5, Safari 3.2.1, and Google
> Chrome 1.0. jQuery 1.3.1 does work properly in Opera 9.63. I'll get
> to IE in a moment.
>
> jQuery 1.2.6 works correctly, so I compared the source and discovered
> that jQuery 1.3.1 correctly identifies the page as XML (XHTML), while
> jQuery 1.2.6 does not. Within attr(), the value of var notxml = !
> jQuery.isXMLDoc( elem ) determines how jQuery sets the element
> attribute. If notxml is true, jQuery is setting the checked attribute
> correctly, but if notxml is false, then jQuery does not set or clear
> the checkbox once someone clicks directly on the checkbox.
>
> As a workaround, I have found that I can set and clear the checkbox by
> setting the DOM property directly:
>
> document.getElementById("c").checked = false;
> document.getElementById("c").checked = true;
>
> However, Opera seems to understand when jQuery sets the checked
> attribute.
>
> Now, IE6 and IE7 cannot accept Content-type: application/xhtml+xml, so
> I send the more traditional Content-type: text/html. Thus, with IE6
> and IE7, jQuery 1.3.1 reverts back to the behavior of 1.2.6, so IE
> works.
>
> Sorry for the amount of detail here, but I hope this will be helpful
> in fixing this problem.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---