Можно ли узнать, были ли предложения по изменению с помощью автозаполнения jquery-ui - PullRequest
1 голос
/ 14 марта 2012

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

suggestOpened = false;//Initially set flag to false
....
open: function(evt, ui) {
  suggestOpen = true; //Set the flag to true when the list is opened
}
change: function(event, ui) {
  if(!suggestOpened) {
    //open dialog box
  }
  suggestOpened = false; //List will be closed here so reset flag
}

Проблема в том, что если пользователь возвращается в поле в том же сеансе и хочет сохранить другой элемент, флаг будет установлен в значение false, поэтому диалоговое окно не будет открыто. Могу ли я как-нибудь получить доступ к ответу на запрос ajax и выяснить, содержал ли ответ предложения из источника?

Спасибо, Roland

1 Ответ

1 голос
/ 14 марта 2012

Вы довольно близки - событие change может справиться с этим:

$("#auto").autocomplete({
    source: ['hi', 'bye', 'foo', 'bar'],
    change: function (event, ui) {
        var newItem = !ui.item;

        if (newItem) {
            /* open your dialog */
            $("#dialog").dialog("open");
        }
    }
});

Пример: http://jsfiddle.net/8RmRY/

Единственное предупреждениев том, что если пользователь вводит что-то, что существует в списке, но физически не выбирает элемент, newItem будет true.Если это проблема, я могу расширить свой ответ.

...