Side navigation
#10461 closed bug (worksforme)
Opened October 09, 2011 04:43PM UTC
Closed October 09, 2011 09:07PM UTC
Last modified August 20, 2012 01:50PM UTC
selector :checked sometimes returns object with checked attribute false (Opera only)
Reported by: | sea128@post.cz | Owned by: | |
---|---|---|---|
Priority: | low | Milestone: | None |
Component: | selector | Version: | 1.6.4 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
Tested on Opera 11.51 Windows 7. This works at IE 9 and Firefox 6.0.3 and Firefox 7.0.1 without problems.
$("input[name='bar']:checked")sometimes returns object with checked attribute set to false.
Clicking on disallow and allow radios sometimes did not change disable property.
How to reproduce bug:
clicking on disallow and allow radios with rate 1 click per second. If disabling and enabling checkbox working then click on "Not interesting" radio (unchecked) and then continue clicking on disallow and allow radios.
How to not reproduce bug:
click very slow rate (about 1 click per 10 seconds).
I do not know if this selector is invalid (it works in IE and Firefox) but I know how workaround this problem. Instead of
$("input[name='bar']:checked")use
$("input[name='bar']").filter(":checked")
Example code:
#!xml <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title></title> <script type='text/javascript' src='http://code.jquery.com/jquery-1.6.4.js'></script> <script type='text/javascript'> //<![CDATA[ $(document).ready(function() { function update() { var element = $("input[name='bar']:checked"); //BUGGY //var element = $("input[name='bar']").filter(":checked");//WORKING if (element.length==1&&!element[0].checked) { alert("Error"); } var value = element.val(); if (value == "disallow") { $("#some_checkbox").prop({ disabled: true }); } else { $("#some_checkbox").prop({ disabled: false }); } } update(); $("input[type='radio']").change(function() { update(); }); }); //]]> </script> </head> <body> <form action="" method="post"> <div> <input type="radio" name="foo" value="foo1" id="foo1" checked="checked"><label for="foo1">Not interesting 1</label><br> <input type="radio" name="foo" value="foo2" id="foo2"><label for="foo2">Not interesting 2</label><br> <input type="radio" name="bar" value="disallow" id="disallow" checked="checked"><label for="disallow">Disallow checkbox</label><br> <input type="radio" name="bar" value="allow" id="allow"><label for="allow">Allow checkbox</label><br> <input type="checkbox" id="some_checkbox" name="some_checkbox"><label for="some_checkbox">some checkbox</label> </div> </form> </body> </html>
Attachments (0)
Change History (2)
Changed October 09, 2011 09:07PM UTC by comment:1
component: | unfiled → selector |
---|---|
priority: | undecided → low |
resolution: | → worksforme |
status: | new → closed |
Changed August 20, 2012 01:50PM UTC by comment:2
Hey.
I have the same problem.
But I found another solution to it!
Compare my two versions:
http://jsfiddle.net/Lexx918/yzVfc/ (works!)
http://jsfiddle.net/Lexx918/yzVfc/1/ (does not work)
Different one (well, two) lines.
Works for me in Opera 11.51.
http://jsfiddle.net/timmywil/MWmBR/1/