我希望有人可以帮助我找到答案并尝试了很多选项......我有一个HTML5数据库和更新的表格,然后清空选择框,创建新的选择选项。问题是未显示所选选项。以下是实际查询移动代码。感谢
function updateCList() {
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM CourseTable', [], function (tx, results) {
var len = results.rows.length, i;
$('#coursemenu').empty();
SelectOption(document.courseData_form.coursemenu, "Course Type", "Course Type")
for (i = 0; i < len; i++){
SelectOption(document.courseData_form.coursemenu, results.rows.item(i).c_type, results.rows.item(i).c_type);
}
}, null);
$('#coursemenu').selectmenu('refresh', true);
});
}
答案 0 :(得分:0)
executeSql()
是一个异步函数,因此当您调用selectmenu('refresh', true)
来更新元素时,尚未添加选项。要避免这种情况,请将update命令移动到executeSql()
函数的内部,如下所示:
tx.executeSql('SELECT * FROM CourseTable', [], function (tx, results) {
var len = results.rows.length, i;
$('#coursemenu').empty();
SelectOption(document.courseData_form.coursemenu, "Course Type", "Course Type")
for (i = 0; i < len; i++){
SelectOption(document.courseData_form.coursemenu, results.rows.item(i).c_type, results.rows.item(i).c_type);
}
$('#coursemenu').selectmenu('refresh', true);
}, null);
详细了解docs中的函数和语法。
答案 1 :(得分:0)
这是我的解决方法。当我使用空命令时,默认链接被破坏,此代码删除了除第一个选项之外的所有选项。
function emptyCList() {
var select = document.getElementById("coursemenu");
var len = select.options.length;
for (i = len; i > 0; i--) {
select.options[i] = null;
};
};