检索jQuery自动填充字段

And*_*ose 3 asp.net-mvc jquery autocomplete

我正在使用jQuery自动完成插件并连接了一个输入字段,以便在输入文本时从后端数据库中检索值,然后可以选择该文本.
然后我有一个第二个输入字段,我以类似的方式连接,但是我想在自动完成ajax调用中将第一个输入字段的值作为查询字符串参数传递,以便可以过滤自动完成结果.
我已经尝试使用第一个输入字段的.val()方法,但这似乎总是返回一个空字符串,除非我允许表单回发.我也尝试过使用getElementById('xxx').value但这会返回一个空值.
有没有什么方法可以检索在第一个字段中选择的动态值,所以我可以将它传递给我的jQuery ajax调用服务器?
下面的代码,为简洁起见删除了一些代码

<% using (Html.BeginForm()) {%>
    <script language="javascript">
        $(document).ready(function(){
            $("#Make").autocomplete('/MyController/AutoCompleteMake', {
                dataType: 'json',
                parse: function(data) {
                    var rows = new Array();
                    for (var i = 0; i < data.length; i++) {
                        rows[i] = { data: data[i], value: data[i], result: data[i] };
                    }
                    return rows;
                },
                formatItem: function(row) {
                    return row;
                },
                delay: 40
            });

            $("#Range").autocomplete('/MyController/AutoCompleteRange?Make=' + $('input[name=Make]').val(), {
                same as above .......
            });
        });
  </script>
    <fieldset>
        <legend>Fields</legend>
        <p>
            <label for="Make">Make:</label>
            <%= Html.TextBox("Make") %>
            <%= Html.ValidationMessage("Make", "*") %>
        </p>
        <p>
            <label for="Range">Range:</label>
            <%= Html.TextBox("Range") %>
            <%= Html.ValidationMessage("Range", "*") %>
        </p>
<% } %>
Run Code Online (Sandbox Code Playgroud)

它是$('input [name = Make]').val()部分,即使选择了一个,它也总是返回空值.

我刚刚开始使用jQuery和MVC,所以任何帮助将不胜感激.

djd*_*d87 5

您需要使用extraParams函数:

$("#Make").autocomplete(url, {
   extraParams: {
       yourValue: function() { return $("input[name=Make]").val(); }
   }
}); 
Run Code Online (Sandbox Code Playgroud)

然后,它将在HttpContext中传递给您的目标.

这可以如下拉出:

string valueToUse = context.Request.QueryString["yourValue"];
Run Code Online (Sandbox Code Playgroud)

从jQuery自动完成文档:

通常,一个自动填充字段取决于另一个字段的值.在这种情况下,extraParams选项可以提供必要的动态参数

您正在构建静态字符串时,您当前的代码不起作用.您需要使用一个函数来动态返回您感兴趣的输入字段的值.