如何仅使用选项值设置 select2 选项?
How to set select2 option using only option value?
我正在使用 select2 v4.0.1 select 盒子,它通过下面的函数成功更新了它的选项。
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;
};
});
};
但是,在这次更新之后,当我尝试设置 selected 选项时,下面的代码似乎只适用于选项值,但不适用于选项文本,因此我得到了 select里面没有文字的离子。
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");
}
});
};
感谢shi的建议,我解决了这个问题。我在不同的桥梁部分有 2 个语法错误导致故障,但它们被开发人员工具忽略了。代码按照我发布的方式运行良好。
我正在使用 select2 v4.0.1 select 盒子,它通过下面的函数成功更新了它的选项。
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;
};
});
};
但是,在这次更新之后,当我尝试设置 selected 选项时,下面的代码似乎只适用于选项值,但不适用于选项文本,因此我得到了 select里面没有文字的离子。
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");
}
});
};
感谢shi的建议,我解决了这个问题。我在不同的桥梁部分有 2 个语法错误导致故障,但它们被开发人员工具忽略了。代码按照我发布的方式运行良好。