如何仅使用选项值设置select2选项?
问题描述:
我正在使用select2 v4.0.1选择框,通过以下功能成功更新其选项。如何仅使用选项值设置select2选项?
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,我将其作为选项值分配。
答
您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");
}
});
};
对不起,这不应该在那里,原来的代码就像$(“#editcname,#editcsurname,#editcgsm,#editcemail,#editcexp”)。val(“”); var updateEditPlc = {cID: $(“#selectclientedit”)...等,我裁剪和编辑它,以减少你必须经历的代码量。这是不是在原代码中,我现在纠正了片段。问题依然存在,我原本不清楚选项,它们在#myselect里面,没有被删除。 – Ahmet
在我的回答中也检查post方法,response.val!= 0被替换为if语句中的response.length!= 0。 – mhshimul
谢谢你的建议,这将是更好的检查方法。但response.val!= 0仍然有效,函数不会跳过它;我已经提醒过测试。 – Ahmet