Автозаполнение: отображение данных, отличных от того, что заполнено, и заполнение нескольких полей? - PullRequest
1 голос
/ 05 января 2010

Я использую asp.NET MVC и ищу плагин автозаполнения JQuery для того, что я хочу сделать. Мне нужна дополнительная функциональность, которую я не думаю, что она обеспечивает.

У меня есть страница с двумя текстовыми полями: Имя и Фамилия. В идеале, когда кто-то начинает печатать в любом из них, я хотел бы, чтобы автозаполнение отображало как имя, так и фамилию всех совпадений. Если было выбрано одно из этих совпадений, я бы хотел, чтобы в текущее поле входило только соответствующее (первое / последнее) имя, а другое поле также заполнялось бы соответствующим именем.

Итак, проблемы здесь в том, что A) я хотел бы, чтобы текст предложения отличался от значения, которое будет заполнено в текущем поле, и B) я хотел бы обновить несколько полей из одного автозаполнения. Имеет ли это смысл? Кажется, трудно найти информацию об этой ситуации в сети. Заранее спасибо за ваше время.

Ответы [ 2 ]

1 голос
/ 05 января 2010

Если вы решите, что действительно хотите это сделать, этот пример будет делать то, что вы хотите. Вы можете использовать метод result() для добавления необходимых вам функций.

$(document).ready(function(){

    var data = [ "John Doe","Jane Doe","Mike Smith" ];


    $("#firstname").autocomplete(data).result(function(event, item) {
            var rdata = item[0].split(" ");
            $("#firstname").val(rdata[0]);
            $("#lastname").val(rdata[1]);
    });

    $("#lastname").autocomplete(data).result(function(event, item) {
            var rdata = item[0].split(" ");
            $("#firstname").val(rdata[0]);
            $("#lastname").val(rdata[1]);
    });

});
0 голосов
/ 05 января 2010

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

Кроме того, почти всегда очень плохая идея, чтобы изменения пользователя в одном поле приводили к автоматическим изменениям в других полях. Пользователи не всегда замечают, что другое поле изменилось, и они не всегда перепроверяют значения для предварительно заполненных полей, поэтому это часто приводит к увеличению частоты ошибок при вводе данных.

Рассматривали ли вы только одно поле для имени в пользовательском интерфейсе и только одно автозаполнение? На стороне сервера вы можете разделить содержимое для хранения в виде отдельных полей.

Другая техника, которую вы могли бы рассмотреть, это иметь дополнительную функцию "найди меня". Здесь у вас будет одно поле, как описано выше. Пользователь ищет, и если он выбирает что-то, он заполняет остальную часть формы. Обычно вы скрываете или отключаете оставшуюся часть формы, пока пользователь не выберет из поиска или явно не нажмет какую-либо кнопку «Пропустить».

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...