JQuery автозаполнение, чтобы получить неиспользуемое значение - PullRequest
0 голосов
/ 16 сентября 2009

В моем приложении ASP.Net MVC у меня есть автозаполнение jQuery в текстовом поле. У меня есть все, что нужно для отображения используемых в настоящее время имен элементов, и я хочу заставить пользователя ввести совершенно НОВОЕ имя элемента. То есть автозаполнение действует как руководство к тому, что существует, но в конечном итоге пользователь должен ввести полностью использованное строковое значение.

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

Мой сценарий выглядит следующим образом:

    $(document).ready(function() {
        $('#combobox').autocomplete('<%= Url.Action("ProjectIdList", "LookUp") %>', {
    delay:10,
    minChars:1,
    matchCase: 0,
    matchSubset: 1,
    autoFill: true,
    maxItemsToShow:10,
    cacheLength: 10,
    onItemSelect:selectItem,
    onFindValue:selectItem    
    });

});

Обратите внимание на разметку: onItemSelect: selectItem, onFindValue: selectItem

У меня есть следующий сценарий:

    function findValue(li) {
        if (li != null) return alert("This Project Id cannot be used");


    }
    function selectItem(li) {
        findValue(li);

    }

Однако, Я не могу запустить эти события . Чего мне не хватает?

В качестве альтернативы, есть ли лучший способ сделать это?

Ответы [ 2 ]

1 голос
/ 16 сентября 2009

Я использовал

$("combobox").result(function(item){
  if(!item)
  {
    //no match
   }
});

с некоторым успехом с официальным плагином.

0 голосов
/ 16 сентября 2009

Полный окончательный код для того, чтобы помочь всем, кому это нужно, был следующим:

    $(document).ready(function() {
        $('#combobox').autocomplete('<%= Url.Action("ProjectIdList", "LookUp") %>',
{
    delay: 10,
    minChars: 1,
    matchCase: 0,
    matchSubset: 1,
    autoFill: true,
    maxItemsToShow: 10,
    cacheLength: 10

}
);

        $('#combobox').result(function(item) {
            if (item) {
                //no match
                alert("Not this one!");
            }
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...