Дополнительные условия поиска в JQuery Autocomplete 1.8 - PullRequest
0 голосов
/ 11 октября 2011

Я новичок в Jquery, поэтому я могу упустить что-то очевидное ...

Я использую виджет автозаполнения JQuery 1.8 для поиска. После того, как пользователь введет 3 символа, функция сработает. Таким образом, «термин» в функции ниже представляет символы в названии улицы.

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

(если это имеет значение, я использую ASP.Net MVC3)

  $("#SearchStreet").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/VoterAndPollingPlaceLookup/PollingPlaceSearch/FindStreet",
                dataType: "json",
                data: {
                    term: request.term
                },
                success: function (data) {
                    response($.map(data, function (item) {
                        return {
                            value: item
                        }
                    }));
                }
            });
        },
        minLength: 3,
        delay: 0
    });

РЕДАКТИРОВАТЬ: после справки ниже мой новый код, который отлично работает!

Я сделал следующие обновления: Действие моего контроллера, которое вызывается:

Public Function FindStreet(term As String, searchZip As String, searchHouse As String) As JsonResult
           .....returns results
        End Function

Ниже обновленный Jquery.

 $("#SearchStreet").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "/OnlineVoterRegistration/ApplicationDetails/FindStreet",
                dataType: "json",
                data: { term: request.term, 
                        searchZip: $("#SearchZip").val(), 
                        searchHouse: $("#SearchHouse").val() }
                success: function (data) {
                    response($.map(data, function (item) {
                        return {
                            value: item
                        }
                    }));
                }
            });
        },
        minLength: 3,
        delay: 0
    });

1 Ответ

1 голос
/ 11 октября 2011

Параметр data для запроса ajax принимает объект JSON, поэтому все, что вам нужно сделать, это добавить другие свойства к этому объекту.Вот так:

$("#SearchStreet").autocomplete({ 
        source: function (request, response) { 
            $.ajax({ 
                url: "/VoterAndPollingPlaceLookup/PollingPlaceSearch/FindStreet", 
                dataType: "json", 
                data: { 
                    term: request.term,
                    zipCode: 'zip code',
                    houseNumber: 'house number'
                }, 
                success: function (data) { 
                    response($.map(data, function (item) { 
                        return { 
                            value: item 
                        } 
                    })); 
                } 
            }); 
        }, 
        minLength: 3, 
        delay: 0 
    });

В вашем действии контроллера вы должны добавить параметры zipCode и houseNumber.

...