我用这个来自动完成:http: //jquery.bassistance.de/autocomplete/demo/
它适用于正常输入,例如:
$(".product_name").autocomplete('auto_complete.php', {
selectFirst: false,
extraParams: {
type: 'products_name',
lang: 'en',
},
width: '12%',
});
当我的页面上有带类的输入时,这很好用product_name
,但现在在我的新情况下,我想为页面上尚未出现的一些输入添加自动完成功能,它们只是使用类似这样的东西附加到正文中:
$('#blah').on('click', function(){
$('.some_div').append('<input type="text" class="newly_added" />');
});
正常的自动完成初始化不适用于带有 class 的输入newly_added
,所以我写道:
$('body').on('focus', '.some_div input[type="text"]', function(){
$(".newly_added").autocomplete('auto_complete.php', {
selectFirst: false,
extraParams: {
type: 'products_name',
lang: 'en',
},
width: '12%',
});
});
这解决了问题,现在newly_added
也将自动完成,但问题是当我检查 Firebug 的 Ajax 请求时,将发送几个 ajax 请求而不是一个!我的意思是对于每个输入的自动完成,将向服务器发送超过 2、3、4 个请求,并且通过向页面添加更多输入来增加请求的数量,有时甚至会发送 20 个请求。
所以问题是,我应该如何防止多个请求呢?还是有其他适合这种情况的方法?
谢谢