Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery自动完成_Javascript_C#_Jquery_Autocomplete - Fatal编程技术网

Javascript 如何使用jQuery自动完成

Javascript 如何使用jQuery自动完成,javascript,c#,jquery,autocomplete,Javascript,C#,Jquery,Autocomplete,我已经看了很多很多的例子,但无法找到让autocomplete工作的方法。这是我的HTML: <table> <tr> <td> Item Number: </td> <td> <input id="items" /> </td> <td>

我已经看了很多很多的例子,但无法找到让autocomplete工作的方法。这是我的HTML:

 <table>
    <tr>
        <td>
            Item Number:
        </td>
        <td>
            <input id="items" />
        </td>
        <td>
            @Html.DisplayTextFor(x=>x.ItemDescription)
        </td>
        <td>
            @Html.TextBoxFor(x=>x.ItemDescription, new { @id = "txtDescription" }) 
        </td>
    </tr>
</table>
正在选择正确的项目并返回到成功功能。但是没有显示下拉列表。如何显示与输入匹配的值的下拉列表?

根据,
响应是一个回调函数,您应该将数据传递给它。我认为你应该改变这一行:

response = $.map(...);

response
方法负责构建和显示下拉列表。它接受从控制器返回的数据。在您的原始代码中,您正在重写它,因此有效地处理将在该点停止,并且您看不到正在呈现的下拉列表

以下是上述链接的摘录,用于从远程数据源(comments mine)加载项目:


您的控制器操作是否标有
[HttpPost]
?当你调试你的代码时,你的控制器动作会被击中吗?为什么不为
#项指定输入类型
?您的页面中是否有对jQuery和jQuery UI的引用?是的,方法的命中率很高,并且正确的字符串列表返回到页面中。我只是看不到下拉结果。根据,
response
是一个回调函数,您应该将数据传递给它(例如,
response($.map(…)
)。正如您在上面看到的,我正在映射它,但这是做什么的?如何从中生成下拉列表?您正在将
$.map
操作的结果分配给
响应
,而不是将其作为参数传递给
响应
(这是一个函数)。耶!成功了。谢谢
 $("#items").autocomplete({
        source: function (request, response) {
            $.ajax({
                type: 'POST',
                dataType: "json",
                data: {data: request.term },
                url: '@Url.Action("GetAllItemNumbers")',
                success: function (data) {
                    response = $.map(data, function (item) {
                        return {
                            value: item
                        };
                    });
                }
             });
        },
        minLength: 4
    });
response = $.map(...);
response($.map(...));
$( "#city" ).autocomplete({
  source: function( request, response ) {
    $.ajax({
      url: "http://gd.geobytes.com/AutoCompleteCity",
      dataType: "jsonp",
      data: {
        q: request.term
      },
      success: function( data ) {
        response( data ); // pass data INTO response, don't assign it
      }
    });
  },
  minLength: 3,
  // other methods omitted
});