【发布时间】:2014-10-29 23:18:15
【问题描述】:
花了几个小时让 Twitter 预先输入显示自动完成值后,我很难弄清楚如何替换控制器中创建和编辑操作中的所有下拉列表。
我知道有几个问题。第一个是如何将所选对象的 ID(键)传递给 typeahead。我的 JSON 具有基本上是 ID 的 Key 值和作为对象名称的 Value 值。 JSON可以在下面看到。
[{"Key":1,"Value":"Test1"},{"Key":2,"Value":"Test2)"},{"Key":4,"Value":"Adagreb d.o.o."},{"Key":5,"Value":"AGB Nielsen."}]
在获取 JSON 并将其转换为 Javascript 对象数组后,数据将传递给应显示自动完成(预先输入)的控件。
var substringMatcher = function (strs) {
//ommited for brevity
};
function getJson(url) {
//ommited for brevity
}
function simpleArray(target) {
var arr = [];
$.each(target, function (i, e) {
$.each(e, function (key, val) {
arr.push(val);
console.log(val + "-" + key);
});
});
return arr;
}
function typeaheadSetup(control, data) {
$(control).typeahead({
hint: true,
highlight: true,
minLength: 2
}, {
displayKey: 'value',
source: substringMatcher(simpleArray(data))
});
}
var companies = getJson('/Ticket/GetCompanies');
typeaheadSetup('#idFirma', companies);
我的问题是如何在显示值(值)的同时传递 ID(键),并且还能够通过将模型传递到数据库来保存它。
【问题讨论】:
标签: jquery asp.net-mvc twitter-bootstrap-3 typeahead.js twitter-typeahead