有一个带有typeahead处理程序的文本字段没有执行AJAX调用?

时间:2014-03-01 15:12:52

标签: javascript jquery html ajax twitter-bootstrap

在我提出问题之前,我会陈述一些我正在使用的工具:

我只需要一个文本字段即可完美地运行。但是,当我添加另一个文本字段并尝试将类型头处理程序连接到第二个时,第二个无法执行AJAX调用,我正在试图弄清问题是什么。

HTML代码:

<div id = "tester" class="well">
<input id = "test" class="typeahead" type="text" placeholder="Search" data-provide="typeahead" autocomplete="off" spellcheck="false" dir="auto" style="position: relative; vertical-align: top;">
</div>

<div id = "tester2" class="well">
<input id = "test2" class="typeahead" type="text" placeholder="Search" data-provide="typeahead" autocomplete="off" spellcheck="false" dir="auto" style="position: relative; vertical-align: top;">
</div>

使用Javascript:

<script src="assets/js/jquery-1.11.0.js"></script>
<script src="assets/js/bootstrap.js"></script>

<script>

$(function(){
$('.typeahead').typeahead({
    source: function(typeahead, query){
        $.ajax({
            url: 'my_controller',
            type: 'POST',
            data: 'query=' + query,
            dataType: 'JSON',
            async: true,
            success: function(data){
                typeahead.process(data);
            }

        });
    }
});
});

</script>

AJAX调用甚至无法执行第二个类型,因为第一个工作正常。我不知道我错过了什么。我甚至按类名选择输入。

我非常感谢任何帮助或指导。

这是一个jsfiddle:http://jsfiddle.net/pK6g5/

谢谢。

1 个答案:

答案 0 :(得分:1)

你的“modified bootstrap-typeahead.js”库使用$.browser,它自1.9以来就不在jQuery中。为了保留它,您可以添加Jquery Migrate

我刚刚将这个库添加到您的小提琴中,它似乎有效:FIDDLE