Don't have .val() return selected-but-disabled options, or selected options inside a disabled optgroup. Doesn't change the .val() returned for a disabled select. Fixes #3240, adapted from Nathan Hammond's patch there.

This commit is contained in:
Dave Methvin 2010-09-24 17:26:22 -04:00 committed by jeresig
parent 700ff05af0
commit 2c4b20809e
6 changed files with 31 additions and 12 deletions

View file

@ -302,7 +302,7 @@ test("removeAttr(String)", function() {
});
test("val()", function() {
expect(17);
expect(20);
document.getElementById('text1').value = "bla";
equals( jQuery("#text1").val(), "bla", "Check for modified value of input element" );
@ -329,6 +329,14 @@ test("val()", function() {
jQuery('#select3').val("");
same( jQuery('#select3').val(), [''], 'Call val() on a multiple="multiple" select' );
same( jQuery('#select4').val(), [], 'Call val() on multiple="multiple" select with all disabled options' );
jQuery('#select4 optgroup').add('#select4 > [disabled]').attr('disabled', false);
same( jQuery('#select4').val(), ['2', '3'], 'Call val() on multiple="multiple" select with some disabled options' );
jQuery('#select4').attr('disabled', true);
same( jQuery('#select4').val(), ['2', '3'], 'Call val() on disabled multiple="multiple" select' );
var checks = jQuery("<input type='checkbox' name='test' value='1'/><input type='checkbox' name='test' value='2'/><input type='checkbox' name='test' value=''/><input type='checkbox' name='test'/>").appendTo("#form");
same( checks.serialize(), "", "Get unchecked values." );