Я использую автоподсказку ColdFusion для поля UserID. Когда пользователь начинает вводить UserID, всплывает список идентификаторов пользователей (заполняется функцией cfc). Образец кода:
<cfinput name="userID" type="text" value="#userID#" autoSuggest="cfc:Utilities.suggestUser({cfautosuggestvalue})" matchcontains="true" />
Я хочу запускать обработчик, когда я выбираю одно из значений в автопредложении, чтобы я мог использовать выбранное значение в другом месте. JQuery-код:
$('#userID').change(function(){
var userID = $(this).val();
$('#otherUserIDField').html(userID);
});
Проблема в том, что когда я нажимаю элемент в списке автозаполнения, событие изменения запускается до того, как выбранная запись будет введена в поле формы. Например, если я ищу пользователя «123456» и начинаю вводить «123», а затем вижу его в списке автозаполнения, я нажимаю «123456» в списке автозаполнения, и событие изменения запускается, в то время как значение поле формы по-прежнему только «123». Я пытался добавить задержку ($('#otherUserIDField').delay(1000).html(userID);
), но это не помогло. Есть ли какое-либо другое событие, которое я могу использовать? Есть ли способ обойти это?
Как выполнить код только после выбора самовнушения?
.delay(1000)
— это фиктивная анимация, она не задерживает ваш вызов.html
. - person Esailija   schedule 19.06.2012