Bug Tracker

Ticket #2652 (closed enhancement: fixed)

Opened 1 year ago

Last modified 1 year ago

val() returns an empty string in IE6/7

Reported by: kowcik Assigned to: flesler
Type: enhancement Priority: minor
Milestone: 1.3 Component: core
Version: 1.2.6 Keywords: val, select selected
Cc: Needs: Commit

Description

See the attached example.

Attachments

val.html (0.8 kB) - added by kowcik 1 year ago.
Test case from jQuery documentation
val[5790].diff (0.8 kB) - added by flesler 1 year ago.

Change History

Changed 1 year ago by kowcik

Test case from jQuery documentation

Changed 1 year ago by flesler

  • status changed from new to closed
  • resolution set to invalid

So.. the options don't have a 'value' attribute, it's expected that you get and empty string as return.

I'll close as invalid, but please reopen if you have anything else to say, do include more details when you do that (better test case and tell us what you expect the return to be, etc).

Changed 1 year ago by kowcik

  • status changed from closed to reopened
  • resolution deleted

In IE val() returns empty strings, whereas in Firefox the value is returned also when there's no value attributed. This should the desired behaviour, because val seems to be an abstraction to access inputs values as they would be submitted to the server. Also, there is a specific line in jQuery code that tries to retrieve values from options, but for some reason this value is not returned later. Generally option.text is the right property to read from in IE.

//val function source code
if ( option.selected ) {
// Get the specifc value for the option
value = jQuery.browser.msie && !option.attributes.value.specified ? option.text : option.value;

Changed 1 year ago by flesler

  • owner set to flesler
  • status changed from reopened to new

Changed 1 year ago by flesler

  • status changed from new to assigned

Changed 1 year ago by flesler

  • priority changed from major to minor
  • need changed from Patch to Commit
  • version changed from 1.2.3 to 1.2.6
  • type changed from bug to enhancement
  • milestone changed from 1.2.4 to 1.3

val() is meant to be used on selects, not on options. If you call it on a select, it will return the value of the selected options, or an array if it's "multiple".

Still.. I pulled out a patch, I'll ask for opinions to see if it should be applied or not.

Changed 1 year ago by flesler

Changed 1 year ago by flesler

  • status changed from assigned to closed
  • resolution set to fixed

Fixed and added some tests at [5793].

Note: See TracTickets for help on using tickets.