我正在使用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,我將其作爲選項值分配。
對不起,這不應該在那裏,原來的代碼就像$(「#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