1
我使用選擇二(經由CDN /最新版本)與來自陣列加載的數據。 (請注意,數據是通過AJAX/JSON拉昇,但由於一些不尋常的情況,這是通過數組裝載。)我需要以編程方式選擇通過文本值,而不是一個ID。我可以通過一個ID來獲得這個工作,但不能使用文本。雖然我可以通過陣列手動迴路,並確定ID,並從ID選擇,我會假定有一個更好的方法...設置文本值中選擇二
這裏有一些代碼片段...
// Now load all the elements into the array, which comes from AJAX
for (i = 0; i < rowCount; i++) {
myData.push({id: i, text: comp_data.rows[i].NN_NAME});
}
// create my Select2 control
var $mySelectControl = $(".mySelect").select2({
data: myData,
width:300,
placeholder: "Select an account",
allowClear: true
});
在以後的某個時候,我希望通過編程選擇「中流砥柱電器」。我可以選擇是否知道該ID,但無法找到如果我只知道該文本。
// THIS WORKS
$(".mySelect").val(null).trigger("change");
//.. but not this
$(".mySelect").val('Mainstay Electric').trigger("change");
在審查其他問題,我發現這個例子中,我修改...
$(".mySelect").select2("trigger", "select", {
data: { text: 'Mainstay Electric' }
});
...但是這給一個JavaScript錯誤a.ID是不確定的。
除了通過myData的數組循環,以獲得ID,並使用它,有沒有辦法只有通過文本(即「中流砥柱電氣」)?
感謝
丹尼爾 - 這工作,但我覺得這是一個警告...我選擇2控制中心有7000個的商家名稱。您在示例中使用了CONTAINS功能。這基本上是一個子字符串函數。如果我正在尋找'瓊斯電器',這將首先與貝克瓊斯電氣公司'相匹配。是否有EQUALS或EXACT MATCH功能,而不是CONTAINS? – user1009073
@ user1009073 ok。使用像'getOptId'這樣的函數,它將搜索下拉列表並獲取id,這種方式完全匹配 –
@ user1009073查看更新的代碼,選項4是最後一個,之前有兩個類似的選項。 –