Jquery 引导类型预选ajax从数据中选择值
我正在使用 我的电话:Jquery 引导类型预选ajax从数据中选择值,jquery,json,twitter-bootstrap,typeahead,Jquery,Json,Twitter Bootstrap,Typeahead,我正在使用 我的电话: $('#SearchUser').typeahead({ ajax: { url: '/users/ajax_finduser', triggerLength: 3, timeout: 300, method: 'post',
$('#SearchUser').typeahead({
ajax: {
url: '/users/ajax_finduser',
triggerLength: 3,
timeout: 300,
method: 'post',
},
display: 'name',
val: 'id',
itemSelected: updateID
});
我的新输出:
这是我的问题,typeahead期望的VAL和名称应该是这样的:
[
{ id: 1, name: 'Some users name' },
{ id: 2, name: 'Another users name' }
]
那么,如何将额外的级别添加到我的typeahead函数USER.name+USER.id中呢?我不知道用什么{}[]
如何修复引号?typeahead不接受json输出的原样。我在某处读到我的输出是正确的。我在这里遗漏了什么吗?遵循@RuslanasBalūIūnas的建议
以下是我的结论:
autosep = '####';
$('.autocomplete').typeahead({
minLength: 3
, source: function (query, process) {
if (!finished) {
return;
}
finished = false;
return $.get(
'the_action'
, the_params
, function (response) {
var data = new Array();
for (var i in response) {
data.push(
response[i]['id']
+ autosep
+ response[i]['label']
);
}
finished = true;
return process(data);
}
);
}
, highlighter: function(item) {
var parts = item.split(autosep);
parts.shift();
return parts.join(autosep);
}
, updater: function(item) {
var parts = item.split(autosep);
$('#the_id').val(parts.shift());
return parts.join(autosep);
}
});
按照@RuslanasBalčiūnas的建议
以下是我的结论:
autosep = '####';
$('.autocomplete').typeahead({
minLength: 3
, source: function (query, process) {
if (!finished) {
return;
}
finished = false;
return $.get(
'the_action'
, the_params
, function (response) {
var data = new Array();
for (var i in response) {
data.push(
response[i]['id']
+ autosep
+ response[i]['label']
);
}
finished = true;
return process(data);
}
);
}
, highlighter: function(item) {
var parts = item.split(autosep);
parts.shift();
return parts.join(autosep);
}
, updater: function(item) {
var parts = item.split(autosep);
$('#the_id').val(parts.shift());
return parts.join(autosep);
}
});
快速浏览一下插件,这不会发生。你应该考虑修改你的输出。。我修改了输出。但是现在有一个问题。。有什么建议吗?或者有另一个我可以使用的提前打字脚本建议?似乎对我来说很好:。你有什么错误吗?但是如果你想删除数字周围的引号,在你的服务器端输出上应该有一些数字解析。我通过改变插件来解决这个问题。我是如何做到的:这显示了如何使用未经修改的Twitter引导typeahead插件来填充id。快速查看一下该插件,这不会发生。你应该考虑修改你的输出。。我修改了输出。但是现在有一个问题。。有什么建议吗?或者有另一个我可以使用的提前打字脚本建议?似乎对我来说很好:。你有什么错误吗?但是如果你想删除数字周围的引号,在你的服务器端输出上应该有一些数字解析。我通过改变插件来解决这个问题。我是如何做到的:这显示了如何使用未经修改的Twitter引导typeahead插件来填充id。这似乎对我不起作用。我删除了“源”部分,因为我的选择在页面中是硬编码的。我仍然在建议中得到展示。这似乎对我不起作用。我删除了“源”部分,因为我的选择在页面中是硬编码的。我仍然在建议中得到展示。