2

我正在向选择列表动态添加一个新选项,我要做的就是选择它,因为它来自用户输入。奇怪的是,他们想要刚刚添加的新选项。

var msg = "an ajax return from a modal input that works";
$("#myselect").append( $('<option></option>').val(msg).html(msg) );

该项目确实被添加到选择中,但未被选中。

我只有 ie8 可以在 Internet 网络上进行测试和遵守...

这是浏览器错误,还是我的代码错误?

我的理解是 .val() 应该选择它。

4

4 回答 4

3

你的代码是错误的。

您创建选项,但您从不选择它。

附加选项后,您可以调用.val()select 元素来设置选定的选项。

调用.val()选项设置选项- 选择该选项时选择的值。

于 2013-07-16T20:41:15.977 回答
3

更改选项值不会将选择设置为该值,您必须设置选择值才能做到这一点

var msg = "an ajax return from a modal input that works";

$("#myselect").append( $('<option>' + msg + '</option>') ).val(msg);

或者您可以设置 selected 属性,但您必须确保没有选择其他选项:

var option = $('<option />', {text:msg, selected:'selected'});
$("#myselect").find('option').prop('selected', false).end().append( option );
于 2013-07-16T20:41:28.293 回答
0

您也$("#myselect:last")可以选择最后一个选项。

于 2013-07-16T20:42:52.977 回答
0

像这样的东西:

var msg = "an ajax return from a modal input that works";
$("#myselect").append('<option value="'+msg+'" selected="selected">'+msg+'</option>');

工作小提琴:http: //jsfiddle.net/hieuh25/aBBRy/1/

于 2013-07-16T20:43:54.013 回答