Bug Tracker

Ticket #2652 (closed enhancement: fixed)

Opened 5 months ago

Last modified 1 month 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 5 months ago.
Test case from jQuery documentation
val[5790].diff (0.8 kB) - added by flesler 1 month ago.

Change History

Changed 5 months ago by kowcik

Test case from jQuery documentation

Changed 4 months 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 3 months 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 3 months ago by flesler

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

Changed 3 months ago by flesler

  • status changed from new to assigned

Changed 1 month 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 month ago by flesler

Changed 1 month 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.