2010-08-02 2 views
0

Я пытаюсь заставить панель/список автозаполнения jqueryUI хотя бы отображать элемент по умолчанию (например, «Добавить новый элемент»), когда нет совпадения был найден. Элемент должен иметь возможность связываться с каким-либо обработчиком событий.Как минимум отобразить элемент в панели автозаполнения JqueryUI, если результат не найден

До сих пор я пытался решить эту проблему, добавив псевдо-панель переменного тока, когда реальная панель переменного тока будет скрыта.

Мне также интересно, можно ли динамически обновлять «источник» (в опции jqueryui.autocomplete), вставляя элемент в набор данных, чтобы любой тип в текстовом поле был обнаружен как совпадение и следовательно, будет отображаться. (Извините, очень трудно объяснить эту часть).

Есть ли лучший способ достичь этого?

ответ

0

я пришел с работы вокруг использования удаленного источника данных. (http://jqueryui.com/demos/autocomplete/#remote)

просто передайте элемент через ajax (элемент по умолчанию, с сервера), когда результатов не найдено.

Решенный!

0

вы можете переопределить функцию _renderItem, и у вас есть дисплей и добавьте текст «Добавить новый элемент».

что-то вроде этого: (предупреждение непроверенные)

$('#yourinputelementid').data("autocomplete")._renderMenu: function(ul, items) { 
     var self = this; 
     $.each(items, function(index, item) { 
      self._renderItem(ul, item); 
     }); 
     var newitem = $("<li>Add New Item</li>"); 
     newitem.click(function(event) { 
      alert("newitem test"); 
     }); 
     self.append(newitem); 
    } 
.data("autocomplete")._renderItem = function(ul, item) { 
    return $("<li></li>") 
     .data("item.autocomplete", item) 
     .append("<a>" + item.label + "<br>" + item.desc + "</a>") 
     .appendTo(ul); 
}; 

see here

+0

Да, я пробовал это раньше, но проблема в том, что меню не будет отображаться в первую очередь (из-за отсутствия соответствия), и, следовательно, «newitem» не будет отображаться. – Yman

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

  • Нет связанных вопросов^_^