Side navigation
#8512 closed enhancement (patchwelcome)
Opened March 13, 2011 01:58AM UTC
Closed March 18, 2011 01:19AM UTC
Last modified March 14, 2012 05:37PM UTC
jQuery("SELECT").val(null) : inconsistent results in different browsers
| Reported by: | shehriyari | Owned by: | shehriyari |
|---|---|---|---|
| Priority: | low | Milestone: | 1.next |
| Component: | attributes | Version: | 1.5.1 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
Please run it on the latest versions of all browsers, and see for yourself. When the button is clicked, on:
1. on WebKit browsers (Chrome, Safari) it just doesn't select anything, instead creates some ghostly empty option
2. on Firefox and Opera, it works the way I expect and want it to work, de-selects all options of the element
3. on Explorer, it does nothing
jQuery 1.5.1 source code also tells us that, in this case jQuery sets selectedIndex = -1.
But since browsers mess it up in this case. Shouldn't jQuery force it to behave the way Firefox and Opera does, de-select all child options?
Thanks.
Attachments (0)
Change History (3)
Changed March 13, 2011 03:00AM UTC by comment:1
| component: | unfiled → attributes |
|---|---|
| owner: | → shehriyari |
| priority: | undecided → low |
| status: | new → pending |
| type: | bug → enhancement |
Changed March 14, 2011 02:24AM UTC by comment:2
| _comment0: | I would prefer that, yes, to select no options. \ \ HOWEVER, my wishes are irrelevant: Although it is NOT documented, the CODE is written that way [jQuery source 1.5.1 - check the stackoverflow.com discussion I referred you to, in original report]. What I say, is that you should make a decision, and implement it. Having selectedIndex = -1 doesn't solve problems, it creates them. jQuery's primary objective (I believe) should be "to be standards-compliant AND cross-browser, useful tool that DOES function", not just "to be standards-compliant tool that follows those standards to no end". selectedIndex = -1 doesn't serve anyone... \ \ And again, YES, I would recommend having all options de-selected. That would solve a lot of problems and would be quite useful shortcut for us, developers. \ \ Thanks for all the effort you guys putting forward, jQuery is an awesome tool! Good luck! → 1300069559869788 |
|---|---|
| _comment1: | I would prefer that, yes, to select no options. \ \ HOWEVER, my wishes are irrelevant: Although it is NOT documented, the CODE is written that way [jQuery source 1.5.1 - check the stackoverflow.com discussion I referred you to, in original report]. What I say, is that you should make a decision, and implement it. Having selectedIndex = -1 doesn't solve problems, it creates them. jQuery's primary objective (I believe) should be "to be standards-compliant AND cross-browser, useful tool that DOES function", not just "to be standards-compliant tool that follows those standards blindly, to no end". selectedIndex = -1 doesn't serve anyone... \ \ And again, YES, I would recommend having all options de-selected. That would solve a lot of problems and would be quite useful shortcut for us, developers. \ \ Thanks for all the effort you guys putting forward, jQuery is an awesome tool! Good luck! → 1300069652782598 |
| _comment2: | I would prefer that, yes, to select no options. \ \ HOWEVER, my wishes are irrelevant: Although it is NOT documented, the CODE is written that way [jQuery source 1.5.1 - check the stackoverflow.com discussion I referred you to, in original report]. What I say, is that you should make a decision, and implement it. Having selectedIndex = -1 doesn't solve problems, it creates them. jQuery's primary objective (I believe) should be "to be standards-compliant AND cross-browser, useful tool that DOES function", not just "to be standards-compliant tool that follows those standards blindly, to no end". selectedIndex = -1 doesn't serve anyone... \ \ And again, YES, I would recommend having all options de-selected. That would solve a lot of problems and would be quite useful shortcut for us, developers. \ \ Thanks for all the effort you guys putting forward, jQuery is an awesome tool! Good luck! \ \ P.S.: That's why I would call this report a BUG, not ENHANCEMENT, since this little feature doesn't do anything useful for front-end designers. → 1300090791727077 |
| status: | pending → new |
I would prefer that, yes, to select no options.
HOWEVER, my wishes are irrelevant: Although it is NOT documented, the CODE is written that way [jQuery source 1.5.1 - check the stackoverflow.com discussion I referred you to, in original report]. What I say, is that you should make a decision, and implement it. Having selectedIndex = -1 doesn't solve problems, it creates them. jQuery's primary objective (I believe) should be "to be standards-compliant AND cross-browser, useful tool that DOES function", not just "to be standards-compliant tool that follows those standards blindly, to no end". selectedIndex = -1 doesn't serve anyone...
And again, YES, I would recommend having all options de-selected. That would solve a lot of problems and would be quite useful shortcut for us, developers.
Thanks for all the effort you guys putting forward, jQuery is an awesome tool! Good luck!
P.S.: That's why I would call this report a BUG, not an ENHANCEMENT, since this little feature doesn't do anything useful for front-end designers.
Changed March 18, 2011 01:19AM UTC by comment:3
| description: | \ http://jsfiddle.net/jf7t2/1/ \ \ Please run it on the latest versions of all browsers, and see for yourself. When the button is clicked, on: \ \ 1. on WebKit browsers (Chrome, Safari) it just doesn't select anything, instead creates some ghostly empty option \ 2. on Firefox and Opera, it works the way I expect and want it to work, de-selects all options of the element \ 3. on Explorer, it does nothing \ \ jQuery 1.5.1 source code also tells us that, in this case jQuery sets selectedIndex = -1. \ \ http://stackoverflow.com/questions/5286424/jqueryformelement-valnull-inconsistent-results-in-different-browsers/5286643#5286643 \ \ But since browsers mess it up in this case. Shouldn't jQuery force it to behave the way Firefox and Opera does, de-select all child options? \ \ Thanks. → http://jsfiddle.net/jf7t2/1/ \ \ Please run it on the latest versions of all browsers, and see for yourself. When the button is clicked, on: \ \ 1. on WebKit browsers (Chrome, Safari) it just doesn't select anything, instead creates some ghostly empty option \ 2. on Firefox and Opera, it works the way I expect and want it to work, de-selects all options of the element \ 3. on Explorer, it does nothing \ \ jQuery 1.5.1 source code also tells us that, in this case jQuery sets selectedIndex = -1. \ \ http://stackoverflow.com/questions/5286424/jqueryformelement-valnull-inconsistent-results-in-different-browsers/5286643#5286643 \ \ But since browsers mess it up in this case. Shouldn't jQuery force it to behave the way Firefox and Opera does, de-select all child options? \ \ Thanks. |
|---|---|
| resolution: | → patchwelcome |
| status: | new → closed |
There is no documented behavior for
.val(null), are you asking for that to be an enhancement to select no options then? The W3C has this to say about the case where nothing is selected initially:http://www.w3.org/TR/html401/interact/forms.html#h-17.6
It's not clear whether browsers want you to deselect all options on a select-one element, but the behavior seems to be poorly defined in any case.