Обнаружение автозаполнения пользовательского интерфейса jQuery

StackOverflow https://stackoverflow.com/questions/254765

  •  05-07-2019
  •  | 
  •  

Вопрос

Как я могу определить, является ли поле ввода в данный момент автозаполнением пользовательского интерфейса jQuery?Похоже, для этого нет собственного метода, но я надеюсь, что есть что-то простое вроде этого:

if ($("#q").autocomplete)
{
  //Do something
}

Однако это условие, похоже, всегда возвращает true .

Это было полезно?

Решение

if ($("#q").hasClass("ac_input")) {
    // do something
}

Обновить

Имя класса в виджете автозаполнения пользовательского интерфейса jQuery теперь 'ui-autocomplete-input', так что код будет:

if ($("#q").hasClass("ui-autocomplete-input")) {
    // do something
}

Другие советы

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

if ($('Selector').data('autocomplete')) {
}

Вы можете использовать

if( $.isFunction( $.fn.autocomplete ) ){ }

.isFunction является частью библиотеки jQuery. (Cite: http://james.padolsey.com/jquery/. ... isFunction )

Если плагин пользовательского интерфейса jquery для автозаполнения уже включен для страницы, и вы просто хотите проверить, настроен ли определенный (входной) элемент с функцией автозаполнения, вы можете использовать официальный метод API как показано ниже:

if ($("#q").autocomplete("instance")) {
    console.log("autocomplete already setup for #q");
} else {
    console.log("NO autocomplete for #q");
}

Более подробную информацию можно найти на http://api.jqueryui.com/autocomplete/ # метод-экземпляр

Это правда, потому что, как только вы включили автозаполнение js, каждый объект $ () теперь имеет определенный метод autocomplete () (на случай, если вы хотите активировать автозаполнение для этих элементов). Ваш if () просто говорит, что эта функция не равна нулю.

У меня, к сожалению, нет системы, где я мог бы это проверить (оставил ноутбук сегодня дома), но я считаю, что автозаполнение добавляет имя класса css к элементам, которые он использует. Вы можете посмотреть на это.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top