我们有一个带有 jquery 自动完成功能的 rails 3.2.8 应用程序。用户从列表中选择客户名称后,应用程序应触发事件 (#invoice_customer_name_autocomplete)。选择后,将触发 ajax 更改事件。这就是应用程序应该做的所有事情。但是下面的代码不能完成这项工作(错误:“t.item.customer is undefined”)。用户甚至无法选择。文本框不会输入客户名称并且屏幕卡住:
//for autocomplete
$(function() {
return $('#invoice_customer_name_autocomplete').autocomplete({
minLength: 1,
source: $('#invoice_customer_name_autocomplete').data('autocomplete-source'),
select: function(event, ui) {
$('#invoice_customer_name_autocomplete').val(ui.item.customer.name);
},
});
});
$(document).ready(function (){
$('#invoice_customer_name_autocomplete').change(function (){
//ajax call
$.get(window.location, $('form').serialize(), null, "script");
return false;
});
});
如果手动更改客户名称,将触发 .change 事件。但是选择后它不会触发。上面的代码有什么问题?
更新:如果选择可以触发 invoice_customer_name_autocomplete 上的更改事件,那么这就是我们想要的。尝试以下代码但未成功(未触发更改事件):
select: function(event, ui) {
$(this).trigger('change');
}