无法使用 JSON 响应填充组合框
Unable to populate combobox using JSON response
我是第一次使用 JQuery 手机。我想从 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);
});
有人可以指出如何实现吗?我也需要复选框列表的相同功能。
填充组合框似乎有效。检查这个:
<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);
});
您确定您的请求正确获取了数据吗? “/GetChaptersList”是对的吗URL?
编辑:
要使其与 jquery 移动设备一起使用,您需要在填充选项的代码之后添加:
$('#comboChapters').selectmenu('refresh', true);
已编辑 jsfiddle:http://jsfiddle.net/qsafmw5g/1/
我是第一次使用 JQuery 手机。我想从 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);
});
有人可以指出如何实现吗?我也需要复选框列表的相同功能。
填充组合框似乎有效。检查这个:
<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);
});
您确定您的请求正确获取了数据吗? “/GetChaptersList”是对的吗URL?
编辑: 要使其与 jquery 移动设备一起使用,您需要在填充选项的代码之后添加:
$('#comboChapters').selectmenu('refresh', true);
已编辑 jsfiddle:http://jsfiddle.net/qsafmw5g/1/