jqueryオートコンプリートを備えたRails3.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イベントが発生します。ただし、選択後は起動しません。上記のコードの何が問題になっていますか?
更新:selectがinvoice_customer_name_autocompleteで変更イベントをトリガーできる場合、これが必要です。以下のコードを試しましたが成功しませんでした(変更イベントは発生しませんでした):
select: function(event, ui) {
$(this).trigger('change');
}