我第一次使用JQuery mobile。我想从JSON结果中填充一个组合框。这是组合框的标记:
<select name="comboChapters" id="comboChapters" data-native-menu="false">
</select>
JSON响应是这样的:
[{"chapterId":1,"chapterName":"First"},{"chapterId":2,"chapterName":"Second"}]
这是我写的JavaScript函数:
$(document).on('pagecreate', '#mainPage', function () {
var condition = navigator.onLine ? "ONLINE" : "OFFLINE";
if (condition === 'ONLINE') {
var options = '';
$.ajax({
url: '/GetChaptersList',
type: 'GET',
success: function (data) {//populate the combobox
for (var i = 0; i < data.length; i++) {
options += '<option value="' +
data[i].chapterId + '">' +
data[i].chapterName + '</option>';
}
$("#comboChapters").html(options);
},
});
}
else
alert('Please connect to the internet.');
});
上述代码不起作用。我甚至尝试过以下代码:
$(data).each(function() {
var option = $('<option />');
option.attr('value', this.chapterId ).text(this.chapterName );
$('#comboChapters').append(option);
});
有人可以指出它是如何完成的吗?我也需要复选框列表的相同功能。
答案 0 :(得分:0)
填充组合框似乎有效。检查一下:
<select name="comboChapters" id="comboChapters" data-native-menu="false">
var data = [{"chapterId":1,"chapterName":"First"},{"chapterId":2,"chapterName":"Second"}];
$(data).each(function() {
var option = $('<option />');
option.attr('value', this.chapterId ).text(this.chapterName );
$('#comboChapters').append(option);
});
您确定您的请求是否正确获取了数据?是&#34; / GetChaptersList&#34;正确的网址?
编辑: 要使它与jquery mobile一起使用,您需要在填充选项的代码之后添加它:
$('#comboChapters').selectmenu('refresh', true);
编辑过jsfiddle:http://jsfiddle.net/qsafmw5g/1/