Bug Tracker

Modify

Ticket #2652 (closed enhancement: fixed)

Opened 5 years ago

Last modified 14 months ago

val() returns an empty string in IE6/7

Reported by: kowcik Owned by: flesler
Priority: minor Milestone: 1.3
Component: core Version: 1.2.6
Keywords: val, select selected Cc:
Blocking: Blocked by:

Description

See the attached example.

Attachments

val.html Download (822 bytes) - added by kowcik 5 years ago.
Test case from jQuery documentation
val[5790].diff Download (843 bytes) - added by flesler 5 years ago.

Change History

Changed 5 years ago by kowcik

Test case from jQuery documentation

comment:1 Changed 5 years 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).

comment:2 Changed 5 years ago by kowcik

  • Status changed from closed to reopened
  • Resolution invalid 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;

comment:3 Changed 5 years ago by flesler

  • Owner set to flesler
  • Status changed from reopened to new

comment:4 Changed 5 years ago by flesler

  • Status changed from new to assigned

comment:5 Changed 5 years ago by flesler

  • need changed from Patch to Commit
  • Priority changed from major to minor
  • 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 5 years ago by flesler

comment:6 Changed 5 years ago by flesler

  • Status changed from assigned to closed
  • Resolution set to fixed

Fixed and added some tests at [5793].

Please follow the  bug reporting guidlines and use  jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.

View

Add a comment

Modify Ticket

Action
as closed
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.