2008-10-31 3 views
7

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

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

Это условное, однако, кажется, всегда возвращает истину.

ответ

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

UPDATE

Имя класса в автозаполнения виджет JQuery UI теперь 'щ-автозаполнения-вход', так что код будет:

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

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

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

3

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

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

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

+1

Это просто проверяет, существует ли `autocomplete` как функция, что означает, что плагин автозаполнения загружается в память. Но это не тот вопрос, который задают. – 2011-09-01 22:04:15

9

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

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

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

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

Более подробную информацию можно Ф.О. und at http://api.jqueryui.com/autocomplete/#method-instance

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