首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bootstrap typehead转换为ajax

bootstrap typehead转换为ajax
EN

Stack Overflow用户
提问于 2013-12-31 21:49:24
回答 2查看 162关注 0票数 0

我有一个包含硬编码数据的工作样本。我正在尝试使用bootstrap-typehead将其转换为ajax调用。我不确定我做错了什么,但consol正在大错特错。有人能帮上忙吗?谢谢!

//错误

日志: object Object,object object SCRIPT438: object不支持属性或方法'toLowerCase‘

JSFIDDLE

代码语言:javascript
复制
$('#selectAgent').typeahead({
     source: function (query, process) {
        return $.post('/eBus/EbusinessAgentServlet', { query: query }, function (data) {
        console.log(data)
        return process(data);
        });
    }
    ,
    minLength: 2,
    highlighter: formatRecord,
    updater: function (item) {
    $('#selectAgent').attr('data-agent-id', item.split('#')[1]);
    return formatRecord(item);
    }

});
EN

回答 2

Stack Overflow用户

发布于 2013-12-31 23:04:51

它现在起作用了。

var nameIdMap = {};

代码语言:javascript
复制
  $('#selectAgent').typeahead({
        source: function (query, process) {
            return $.ajax({
                dataType: "json",
                url: '/eBus/EbusinessAgentServlet',
                data: 'q=' + query,                 
                type: 'POST',
                success: function (json) {
                console.log(json)
                    process(getOptionsFromJson(json));
                }
            });
        },
        minLength: 2,
        updater: function (item) {
            console.log('selected id'+nameIdMap[item]);
            return item;
        }
    });


 });

  function getOptionsFromJson(json) {
$.each(json, function (i, v) {
    nameIdMap[v.fname] = v.agentID;
});

return $.map(json, function (n, i) {
    return n.fname;
});
 }
  function getAjaxRequestData(query) {
return {
    json: getJsonData(query),
    delay: 1
};
// in the question this would be:
// return 'q='+query;
 }
票数 0
EN

Stack Overflow用户

发布于 2015-10-17 17:59:30

我认为这是因为你使用的是ajax,但是javascript有asyn (默认),所以你可以试着这样使用ajax来设置async: false。Hpe此帮助。

代码语言:javascript
复制
$('#selectAgent').typeahead({     
    source: function (query, process) {
      return $.ajax({
        url: "/eBus/EbusinessAgentServlet",
        data: { query: query },
        type: "POST",
        async: false,
        success: function (data) {
          console.log(data)
          return process(data);
        }
      });
    },
    minLength: 2,
    highlighter: formatRecord,
    updater: function (item) {
    $('#selectAgent').attr('data-agent-id', item.split('#')[1]);
    return formatRecord(item);
    }
});

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20858390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档