我正在为选择列表动态添加一个新选项,我想要做的就是选择它,因为它来自用户输入。可能性很大,他们想要他们刚刚添加的新选项。
var msg = "an ajax return from a modal input that works";
$("#myselect").append( $('<option></option>').val(msg).html(msg) );
该项目确实已添加到选择中,但未选中。
我只有ie8在互联网上测试并遵守......
这是一个浏览器错误,还是我的代码错了?
我的理解是.val()应该选择它。
答案 0 :(得分:3)
你的代码错了。
您可以创建选项,但永远不会选择它。
添加选项后,您可以在select元素上调用.val()
来设置所选选项。
在选项上调用.val()
设置选项的值 - 选择该选项时选择将具有的值。
答案 1 :(得分:3)
更改选项值不会将select设置为该值,您必须设置选择值才能执行该操作
var msg = "an ajax return from a modal input that works";
$("#myselect").append( $('<option>' + msg + '</option>') ).val(msg);
或者您可以设置所选属性,但您必须确保没有选择其他选项:
var option = $('<option />', {text:msg, selected:'selected'});
$("#myselect").find('option').prop('selected', false).end().append( option );
答案 2 :(得分:0)
您也可以$("#myselect:last")
选择最后一个选项。
答案 3 :(得分:0)
这样的事情:
var msg = "an ajax return from a modal input that works";
$("#myselect").append('<option value="'+msg+'" selected="selected">'+msg+'</option>');