Автозаполнение с силой выбора - PullRequest
2 голосов
/ 13 апреля 2010

Я хочу использовать автозаполнение (jquery или .net) с принудительным выбором, чтобы пользователь всегда что-то выбирал. Не может быть возможности входа, пользователь может только выбирать.

Кто-нибудь знает, как это сделать?

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

Я хочу отобразить текст в скрытом поле после выбора сохранения значения


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

Ответы [ 2 ]

1 голос
/ 17 декабря 2012

Вы можете использовать виджет jQuery autocomplete , так как он поддерживает принудительный выбор.

        var availableTags = [
            "ActionScript",
            "AppleScript"
        ];
        $("#tags").autocomplete({
            source: availableTags,
            change: function (event, ui) {
                if(!ui.item){
                    //http://api.jqueryui.com/autocomplete/#event-change -
                    // The item selected from the menu, if any. Otherwise the property is null
                    //so clear the item for force selection
                    $("#tags").val("");
                }

            }

        });
0 голосов
/ 13 апреля 2010

Выполнение этого с помощью виджета jQuery UI потребует дополнительных усилий с вашей стороны. Я предлагаю вам рассмотреть возможность использования плагина не-UI autocomplete с опцией mustMatch. Однако обратите внимание, что если у пользователя отключен JavaScript, это не гарантирует, что значение ввода всегда будет соответствовать вашему набору параметров.

EDIT : Пример парсера для плагина автозаполнения. Ожидается массив объектов JSON в форме:

[ {
    "FirstName" : "john",
    "LastName" : "smith",
    "Email" : "john-smith@example.com"
  },
  ...
]

Настройка автозаполнения

$('.selector').autocomplete({
      ...
      parse: function(data) {
                var array = new Array();
                for(var i=0;i<data.length;i++)
                {
                    var datum = data[i];
                    var name = datum.FirstName + ' ' + datum.LastName;
                    var display =  name + ' (' + datum.Email + ')';
                    array[array.length] = { data: datum, value: display, result: name };
                }
                return array;
             },
      ...
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...