Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 自动完成显示所有值_Javascript_Jquery_Asp.net_Asp.net Mvc_Autocomplete - Fatal编程技术网

Javascript 自动完成显示所有值

Javascript 自动完成显示所有值,javascript,jquery,asp.net,asp.net-mvc,autocomplete,Javascript,Jquery,Asp.net,Asp.net Mvc,Autocomplete,我很难显示所有可能的自动完成行。 我正在使用db来存储所有的行。 现在我使用这个脚本: <script type="text/javascript"> $(document).ready(function () { $("#Industry").autocomplete({ source: function (request, response) { $.ajax({

我很难显示所有可能的自动完成行。 我正在使用db来存储所有的行。 现在我使用这个脚本:

     <script type="text/javascript">

     $(document).ready(function () {
         $("#Industry").autocomplete({
             source: function (request, response) {
                 $.ajax({
                     url: "/Employee/SuggestWorkExperienceIndustry",
                     type: "POST",
                     dataType: "json",
                     data: { Prefix: request.term },
                     success: function (data) {
                         response($.map(data, function (item) {
                             return { label: item.Industry, value: item.Industry };
                         }))

                     }
                 })
             },
             messages: {
                 noResults: "failure", results: ""
             }
         });
     });
</script>  
它工作得很好,但我不知道当用户单击字段时如何从数据库中获取所有行。

有一个in-autocomplete小部件
minLength
,它的默认设置为
1
。这意味着您需要在文本框中输入至少一个字符,然后它才能开始请求数据。将其设置为
0
,应立即加载整个列表:

minLength: 0
但请确保这是您真正想要的行为,因为它确实会加载您的所有项目。可能对用户不太友好

更新。不过,似乎没有内置的方法来触发焦点搜索。但手动触发它非常简单:

$("#Industry").autocomplete({
    source: ...
    messages: ...
    minLength: 0
}).focus(function () {
    $(this).autocomplete("search");
});

让那些有同样问题的人更快地回答。 最后的脚本应该如下所示:

<script type="text/javascript">

     $(document).ready(function () {
         $("#VarName").autocomplete({

             source: function (request, response) {
                 $.ajax({
                     url: "/ControllerName/ActionName",
                     type: "POST",
                     dataType: "json",
                     data: { Prefix: request.term },

                     success: function (data) {
                         response($.map(data, function (item) {
                             return { label: item.VarName, value: item.VarName};
                         }))

                     }
                 })
             },
             messages: {
                 noResults: "failure", results: ""
             },
             minLength: 0,
         }).focus(function () {
             $(this).autocomplete("search")});
     });
</script>  

$(文档).ready(函数(){
$(“#VarName”).autocomplete({
来源:功能(请求、响应){
$.ajax({
url:“/ControllerName/ActionName”,
类型:“POST”,
数据类型:“json”,
数据:{前缀:request.term},
成功:功能(数据){
响应($.map)(数据、功能(项){
返回{label:item.VarName,值:item.VarName};
}))
}
})
},
信息:{
结果:失败,结果:
},
最小长度:0,
}).focus(函数(){
$(this.autocomplete(“search”)});
});

当用户单击字段时,请求是否发生?如果是的话,
前缀的值是多少?@Andrei nope,请求不会发生。如果发生这种情况,我会检查
前缀
是否为
,并将所有值从db设置为
行业
,仅此而已。谢谢,@Andrei,这部分解决了我的问题。现在完整的列表已上载,但不是立即单击,我必须输入smtng并将其删除,以便发送长度为0的请求。有没有可能在没有其他动作的情况下进行点击?@GeekyNuns,部分原因是?另一部分是什么?刚刚按enter键,所以评论没有完成。@GeekyNuns,我明白了。更新
<script type="text/javascript">

     $(document).ready(function () {
         $("#VarName").autocomplete({

             source: function (request, response) {
                 $.ajax({
                     url: "/ControllerName/ActionName",
                     type: "POST",
                     dataType: "json",
                     data: { Prefix: request.term },

                     success: function (data) {
                         response($.map(data, function (item) {
                             return { label: item.VarName, value: item.VarName};
                         }))

                     }
                 })
             },
             messages: {
                 noResults: "failure", results: ""
             },
             minLength: 0,
         }).focus(function () {
             $(this).autocomplete("search")});
     });
</script>