У меня есть поле автозаполнения пользовательского интерфейса JQuery, которое за кулисами обращается к функции Ruby. Ввод в поле не вызывает вызов на сервер для загрузки параметров. Однако нажатие клавиши «Вниз» сделает это, и после этого все будет работать нормально. Есть идеи, почему это может быть?
HTML
<div id="subject_select_dialog" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 0px; height: 141px; " scrolltop="0" scrollleft="0">
<input id="subject_select" name="subject" size="70" type="text" class="ui-autocomplete-input" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">
<button id="subject_select_clear" name="button" type="clear">Clear</button>
...
</div>
JavaScript
$("#subject_select").autocomplete({
source: "/users/autocomplete",
minLength: 2,
focus: function( event, ui ) {
$( "#subject_select" ).val( ui.item.label );
return false;
},
select: function(event, ui) {
$("#subject_select").val( ui.item.label )
$("#subject_select_results").html( ui.item.label )
$("#subject_select_id").val( ui.item.value )
return false;
}
});
рубин
def autocomplete
render :json => UserProfile.list_by_name(params[:term]).to_json
end
EDIT:
Изучая сгенерированный HTML, он помечает мое поле как Autocomplete="off"
. Когда я вручную изменяю это значение в моем отладчике, появляется правильное поведение. Почему он помечает его таким атрибутом и как мне это исправить?