我正在使用select2 v4.0.1选择框,它通过以下功能成功更新其选项。
function updateList(){
$("#myselect").html("");
var updateList = {
operation:"updateList"
}
$.post("myphp.php", updateList).done(function(response) {
var counter = 0;
var arrayLength = response.length;
while(counter<arrayLength){
var record = response[counter];
$("#myselect").append('<option value="'+ record.id + '">' + record.name + '</option>')
$("#myselect").select2();
++counter;
};
});
};
然而,在此更新之后,当我尝试设置所选选项时,下面的代码似乎仅适用于选项值,但不适用于选项文本,因此我得到一个没有文本的选择。
function editTableUpdate() {
var editTableUpdate = {
ID: $("#selectrecord").val(),
operation: "editTableUpdate"
}
$.post("myphp.php", editTableUpdate).done(function(response) {
if(response.val != 0){
var record = response[0];
$("#myselect").val(record.id).trigger("change")
}
});
};
编辑: $(“#myselect”)。html(“”);从第二个函数中删除,我错误地将它放在那里,同时裁剪必要的代码。我一直有这个问题。
编辑2 :将鼠标悬停在不同的选项上时,这就是chrome的开发人员工具中发生高位插件的地方。高亮结尾处的数字是数据库中的id,我将其指定为选项值。
答案 0 :(得分:1)
删除editTableUpdate函数中的$("#myselect").html("");
,清除所有选项。
function editTableUpdate() {
var editTableUpdate = {
ID: $("#selectrecord").val(),
operation: "editTableUpdate"
}
$.post("myphp.php", editTableUpdate).done(function(response) {
if(response.length!= 0) {
var record = response[0];
$("#myselect").val(record.id).trigger("change");
}
});
};
答案 1 :(得分:0)
由于shi的建议,我解决了这个问题。我在不同的桥接部分有2个语法错误导致故障,但开发人员工具忽略了它们。代码在我发布它的方式上运行良好。