Jquery UI自动完成向ashx发送额外的动态参数

时间:2012-02-07 11:46:19

标签: asp.net jquery-ui jquery jquery-ui-autocomplete

当我使用Jquery UI自动完成时,我试图将额外的参数传递给我的ashx。 我看过很多例子,花了很多时间摆弄,但是我不能让我去工作。

我有两个自动完成的文本框,在第一个文本框中输入的内容需要缩小搜索范围。

在我的第一个自动填充文本框中,一切正常,返回的ID设置为隐藏字段。

 $("#<%=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() }});

这解雇了我的ashx,但是在extraparams中的Id是空白的。有点谷歌搜索告诉我这是因为它是在页面加载时设置的,因此在我设置隐藏字段的值之前设置了额外参数的值。

我做了一些更多的摆弄和搜索,并提出了很多人似乎正在使用的类似的东西。

    $('#<%=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);
                }                 
            });
        }
    });

问题是这甚至没有解雇ashx!我已经多年来一直在摆弄这个问题,接下来的例子,但我似乎无法正常工作我做错了什么! 我敢肯定它一定是显而易见的!

有人可以帮忙吗?

0 个答案:

没有答案