我正在构建一个带有Ajax调用的选择列表,当另一个选择列表发生更改时会触发该调用。
使用jQuery样式正确加载页面,但是当我用新div替换我的ajax容器时,我无法使用jQuery mobile来格式化它。这意味着它将恢复为本机选择列表格式。
我已经尝试了JQM documentation中的建议:
var myselect = $("select#foo");
myselect[0].selectedIndex = 3;
myselect.selectmenu("refresh");
但这不起作用。我的页面最初加载:
<div id="ajax-destination">
<select id="destinationAirport" data-native-menu="false">
<option value="-- Please Select --" data-placeholder="true">-- Please Select --</option>
</select>
这是我的jQuery代码,包含在另一个选择列表的更改函数中。
$('#ajax-destination').empty();
$.post(url, { departureAirport : departureAirport }, function(data) {
$('#ajax-destination').append(data);
var myselect = $("#destinationAirport");
myselect[0].selectedIndex = 1;
myselect.selectmenu("refresh");
});
我能想到的另一种方法是通过Ajax返回一个JSON数组并使用它来将选项添加到选择列表中,但我更喜欢发送格式化的HTML,因为它更容易理解。
答案 0 :(得分:2)
@Andy:
myselect.selectmenu( “刷新”);将刷新选择框和as myselect.selectmenu('refresh',true) ;将重建选择菜单。它可以帮助你。请在http://forum.jquery.com/topic/how-to-add-items-and-refresh-the-select-menu-in-jquery-mobile
后查看此链接答案 1 :(得分:2)
如果myselect.selectmenu("refresh");
或myselect.selectmenu("refresh",true);
不起作用,您可以随时使用
you could try myselect.trigger('create');