我正在使用带有ajax函数的Bootstrap
typeahead,并且想知道什么是正确的Json结果格式,以返回ID和说明。我需要一个ID来将预输入的选定元素与mvc3模型绑定。
这是代码:
[Html]
<input id="myTypeahead" class='ajax-typeahead' type="text" data-link="myUrl" data-provide="typeahead" />
[Javascript]
$('#myTypeahead').typeahead({
source: function (query, process) {
return $.ajax({
url: $('#myTypeahead').data('link'),
type: 'post',
data: { query: query },
dataType: 'json',
success: function (jsonResult) {
return typeof jsonResult == 'undefined' ? false : process(jsonResult);
}
});
}
});
This works properly when I return a simple list of strings, for example:
{item1, item2, item3}
But I want to return a list with Id, for example:
{
{Id: 1, value: item1},
{Id: 2, value: item2},
{Id: 3, value: item3}
}
如何在ajax“ success:function()”中处理此结果?
使用 jquery Autocomplete 非常容易,因为我可以返回Json Object列表。
[jquery Autocomplete process data example]
...
success: function (data) {
response($.map(data, function (item) {
return { label: item.Id, value: item.Value, id: item.Id, data: item };
})
...
但这不适用于boostrap Typeahead。
谁能帮我?
谢谢。
我尝试了两天,终于可以工作了。Bootstrap Typeahead默认情况下不支持对象数组,而仅支持字符串数组。因为“ matcher”,“
sorter”,“ updater”和“ highlighter”函数期望将字符串作为参数。
而是,“ Bootstrap”支持可自定义的“ matcher”,“ sorter”,“ updater”和“
highlighter”功能。因此,我们可以在Typeahead选项中重写这些功能。
II使用Json格式,并将ID绑定到隐藏的html输入。
代码:
$('#myTypeahead').typeahead({
source: function (query, process) {
return $.ajax({
url: $('#myTypeahead').data('link'),
type: 'post',
data: { query: query },
dataType: 'json',
success: function (result) {
var resultList = result.map(function (item) {
var aItem = { id: item.Id, name: item.Name };
return JSON.stringify(aItem);
});
return process(resultList);
}
});
},
matcher: function (obj) {
var item = JSON.parse(obj);
return ~item.name.toLowerCase().indexOf(this.query.toLowerCase())
},
sorter: function (items) {
var beginswith = [], caseSensitive = [], caseInsensitive = [], item;
while (aItem = items.shift()) {
var item = JSON.parse(aItem);
if (!item.name.toLowerCase().indexOf(this.query.toLowerCase())) beginswith.push(JSON.stringify(item));
else if (~item.name.indexOf(this.query)) caseSensitive.push(JSON.stringify(item));
else caseInsensitive.push(JSON.stringify(item));
}
return beginswith.concat(caseSensitive, caseInsensitive)
},
highlighter: function (obj) {
var item = JSON.parse(obj);
var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
return item.name.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
return '<strong>' + match + '</strong>'
})
},
updater: function (obj) {
var item = JSON.parse(obj);
$('#IdControl').attr('value', item.id);
return item.name;
}
});
问题内容: 我正在编写一个Pythonic工具,用于验证某个系统的正确性。每个验证均以Python编写,报告如下所示: 我认为,这种格式很难阅读,特别是对于非Python专家而言。是否有任何报告生成器可以以一种很好的表格形式生成报告,例如: 说明性 该测试套件在远程终端上运行,因此我更喜欢命令行报告工具。 问题答案: 这并不完全是您要的内容,但是有几种方法可以在其中获得可读的测试输出: HTMLT
我必须获取特定位置7天的天气预报(邮政编码94042)。为此,我提出了这样的HTTP请求: http://api.openweathermap.org/data/2.5/forecast/daily?q=94042 查询结果是Json格式的长字符串。我没有发布结果,因为它很乱,您可以单击链接查看结果: 我对结果的某些部分感到困惑。 > 数组列表中每个元素开头的dt字段表示什么? 数组列表中每个元素
问题内容: 与MySQL使用Python在控制台中打印结果一样,最简单的打印MySQL查询结果的方法是什么?例如,我想得到类似的东西: 注意:我不知道每列的最大宽度是先验的,但是我希望能够不重复两次就可以做到这一点。是否应为每列添加查询的length()?MySQL如何做到这一点,以免严重影响内存或处理时间? 编辑 我认为这与问题无关,但这是我发送的查询: 这是我使用的python代码: 但是此代
我需要以.csv格式输出我的hadoop结果。我要怎么做?我的代码:https://github.com/studhadoop/xml/blob/master/xmlparser11.java 我是否应该简单地在代码中包含csvoutputFormat。我正在使用mapreduce API MyJob.sh 解决方案
现在看下这个项目的具体效果吧。 保持硬件设备上电状态。OBLOQ模块正常工作状态下LED指示灯显示绿色常亮。 登录IoT网站工作间,检查是否存在与硬件通信的设备。 在DF-IoT设备消息里面发送数字“1”,板载连接在13号引脚的小灯会被点亮,发送数字“2”,小灯熄灭。 主控板上13号引脚的小灯原先是熄灭状态。 发送数字“1”,小灯会被点亮。 我们重新回到IoT网站。观察到设备页面中间的筛选工具,如
问题内容: 我需要以.csv格式输出hadoop结果。我该怎么做?我的代码:https : //github.com/studhadoop/xml/blob/master/XmlParser11.java 我应该在我的代码中简单地包含csvoutputFormat吗?我正在使用mapreduce API myjob.sh 解 是的,我不见了>在猫里 问题答案: 您可以使用TextOutputFor