Can someone explain this behavior:
I think you want to try,
$('#test').val(2);
none
is selected
(or default selected) if the drop-down value not exists.
Demo
The issue comes in Blackberry 4.7
having attributes.value
The change in 1.9 version
and 1.10 version
are
jQuery 1.9.1 hook
jQuery.extend({
valHooks: {
option: {
get: function( elem ) {
// attributes.value is undefined in Blackberry 4.7 but
// uses .value. See #6932
var val = elem.attributes.value;
return !val || val.specified ? elem.value : elem.text;
}
},
And jQuery 1.10 hook
jQuery.extend({
valHooks: {
option: {
get: function( elem ) {
// Use proper attribute retrieval(#6932, #12072)
var val = jQuery.find.attr( elem, "value" );
return val != null ?
val :
elem.text;
}
}
Read #6932 Blackberry 4.7: .val() on empty option fails
May be in jQuery 1.9.1 first is the default option if you provide any non-existing value while jQuery 1.10.1 don't select anything in such case.
You should pass value of option
which you wan to select to val(). 200 is a not present as value for any option.
Using the jQuery 1.10.1 the value of the select is null, but using jQuery 1.9.1 the value is the first option.
It's the fix to bug #13514, fixed in v1.10. Setting an invalid value should clear the select (which it does in v1.10+), not leave it at the default (first) option (v1.9).