JQuery UI AutoComplete Отправка дополнительных динамических параметров в Ashx - PullRequest
1 голос
/ 07 февраля 2012

Я пытаюсь передать дополнительные параметры в свой Ashx при использовании автозаполнения Jquery UI.Я видел много примеров и потратил целую вечность, но я не могу заставить мою работать.

У меня есть два текстовых поля с автозаполнением, все, что вводится в первом, должно сузить поисквторой.

В моем первом текстовом поле автозаполнения все работает нормально, и возвращаемый идентификатор устанавливается в скрытое поле.

 $("#<%=txtSearch1.ClientID%>").autocomplete('/Search1.ashx');
    $('#<%=txtSearch1.ClientID%>').result(function (event, data, formatted)
    {
        if (data) {
            var id = data[1];
            $("#<%=hdnSearched1.ClientID%>").val(id);
        }
    });

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

Сначала я попробовал это:

    $("#<%=txtSearch2.ClientID%>").autocomplete('/Search2.ashx',{
   extraParams: { "Id": $("#<%=hdnSearched1.ClientID%>").val() }});

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

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

    $('#<%=this.txtSearch2.ClientID %>').autocomplete({
        source: function (request, response)
        {
            $.ajax({
                url: '/Search2.ashx',
                dataType: "json",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                data: {
                    term: request.term,
                    sId: $("#<%=hdnSearched1.ClientID%>").val()
                },
                success: function (data)
                {
                    response(data);
                },
                error: function (XMLHttpRequest, textStatus, errorThrown)
                {
                    alert(textStatus);
                }                 
            });
        }
    });

Проблема в том, что это даже не увольняет пепла!Я возился с этим целую вечность, следуя примеру за примером, но я не могу понять, что я делаю неправильно!Я уверен, что это должно быть очевидно!

Кто-нибудь может помочь?

...