2014-09-19 3 views
-2

Я хотел бы изменить первую букву слова на верхний регистр. Итак, я написал код на функции keyup().Как запустить keyup() при использовании автозаполнения()

Всякий раз, когда я печатаю внутри введенного текста, первая буква Word меняется на верхний регистр.

Я также использую autocomplete() функция. Проблема в том, что всякий раз, когда я выбираю слово из автозаполнения, его первая буква не изменяется в верхнем регистре, а также последнее текстовое поле становится автоматически сфокусированным.

FYI: Я запускаю функцию keyup() после выбора автозаполнения.

jsfiddle: http://jsfiddle.net/8ke04mgs/5/

+0

Зачем вам нужно 'keyup()' event? Уже 'autocomplete()' использует 'keypress()', и он отлично работает? –

+0

вы сказали: «Всякий раз, когда я выбираю слово из автозаполнения, его первая буква не меняется в верхнем регистре, а также последнее текстовое поле автоматически фокусируется». Но я вижу в вашей скрипке, что ваше первое письмо меняется на верхний регистр, когда вы вводите текстовое поле автозаполнения ... и последний текст отображается со второго символа. Итак, каков ваш вопрос на самом деле. Этот пост и ваша скрипка разные. –

+0

Нет, то же самое. всякий раз, когда я печатаю внутри текстового поля, он работает нормально. Но при наборе текста некоторые подсказки будут показаны в раскрывающемся списке. После выбора любого из предложений из выпадающего письма не будет изменено на верхний регистр. Я ясно объяснил? – Balaji

ответ

0

Вы можете использовать событие изменения на вашем текстовом поле

$(document).on('change', 'inputBox', function() { 
    // Does some stuff and logs the event to the console 
}); 

Это позволит решить проблему автозаполнения

0

Ваш текущий способ делать вещи будет работать идеально, если выбрать метод, который вы предоставить библиотеке автозаполнения, после того, как значение поля было обновлено. Но это не так, его вызывают раньше, и поэтому значение, которое он использует, является старым значением и в любом случае немедленно заменяется автозаполнением.

Как отметил @Alok, вы можете использовать событие «change», чтобы подождать немного дольше.

Чтобы избежать выписывая обработчик событий дважды, помните .on() может занять несколько событий, поэтому я бы просто назвать его на KeyUp и изменения, как так

$('#element').on('keyup change', function() { 
    ... 
}); 

Но я думаю, что в «изменения» современные браузеры должно быть достаточно.

Смежные вопросы