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是最后一个,之前有两个类似的选项。 –