JQuery UI автозаполнения ввода - Как проверить, если ввод пуст при изменении? - PullRequest
4 голосов
/ 28 июля 2011

На моей странице есть поле автозаполнения пользовательского интерфейса Jquery, и мне нужно что-то делать, когда ввод становится пустым (т. Е. Пользователь ввел что-то, а затем удалил все).

Это событие должно запускаться независимо от того, набрали ли они то, что было введено изначально, результаты автозаполнения.

Смысл в том, чтобы показать кнопку, если нет результатов автозаполнения для введенной записи, и удалить ее, если есть результаты ИЛИ ввод пуст.

UPDATE Я пробовал это ...

$('#employeeAutocomplete').change(function() {
     alert("eventFired");
     if($( "#employeeAutocomplete" ).val() == ''){
         $('#createEmployeeBtn').hide();
     }
});

А оповещение не отображается ....

Спасибо, Дэнни

Ответы [ 9 ]

6 голосов
/ 28 июля 2011

http://forum.jquery.com/topic/autocomplete-and-change-event

Примерно такая же проблема:

Я обнаружил изменение: работает, но только когда вход теряет фокус.

Решение, которое я реализовал, чтобы получить желаемый эффект, заключалось в том, чтобы реализовать собственную проверку как часть функции source :.Я установил minLength: в 0, и если длина была меньше 2, я загрузил свои данные дисплея по умолчанию.

1 голос
/ 27 мая 2014

Я знаю, что этот пост действительно старый, но я пытался думать так же, и ответы здесь меня не порадовали.

Итак, я сделал тест пустого значения для события размытия jquery.

$('.input').focus(function() { $(this).autocomplete({ // autocomplete code here }) }).blur(function() { if($(this).val() == "") { } });

1 голос
/ 28 июля 2011

Взгляните на этот плагин

http://www.zurb.com/playground/jquery-text-change-custom-event

это более близкий обработчик для реального события textchange

0 голосов
/ 04 сентября 2017

ОК, люди. Следующее, безусловно, работает и представляет собой удивительно простое и элегантное решение, требующее нескольких строк кода.

100% гарантированно работает.

@ Милокс уже упоминал об этом:

http://zurb.com/playground/jquery-text-change-custom-event

Этот плагин jQuery крошечный. После того как вы загрузите / скопируете его и создадите ссылку на файл 'js', используйте следующее:

jQuery('#input').bind('notext',function () {
    console.log('text field is empty');
});

Есть и другие конфигурации, но это было все, что мне было нужно. Boom. Сортировка.

0 голосов
/ 15 августа 2012

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

http://jqueryui.com/demos/autocomplete/#event-close

0 голосов
/ 28 июля 2011

У автозаполнения jquery ui есть собственное событие изменения, вы пробовали это?

$( ".selector" ).autocomplete({
   change: function(event, ui) { ... }
});

http://jqueryui.com/demos/autocomplete/#event-change

0 голосов
/ 28 июля 2011
$('#employeeAutocomplete').change(function() {
     alert("eventFired");
     if(this.value == ''){
         $('#createEmployeeBtn').hide();
     }
});
0 голосов
/ 28 июля 2011

попробуйте нажать клавишу

.keypress () - API jQuery

0 голосов
/ 28 июля 2011

Надеюсь, это поможет вам :) .change () - jQuery API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...