javascript - 如果没有结果,如何禁用 jquery ajax- 自动完成?

标签 javascript jquery ajax

   jQuery("#" + msgSubject).autocomplete({
       source: function (request, response) {
           jQuery.ajax({
               url: inboxControl.systemParams.allTemplateData + '/' + request.term + inboxControl.systemParams.API_EXTENSION,
               dataType: "json",
               async: false,
               contentType: 'application/json; charset=utf-8',

               error: function (jq, status, message) {
                   //alert('A jQuery error has occurred. Status: ' + status + ' - Message: ' + message); 
               },
               success: function (data) {

                   if (data.results) {
                       response(data.results.templates);
                   } else {

                       response("");
                   }

               }
           });
       },
       minLength: 1

   });

这是我的代码,如果输入的文本没有结果,我想禁用 ajax 调用,在这种情况下,我想搜索单词“India”,如果我键入“I”,它将进行 ajax 调用并搜索对于带有“I”的单词,假设结果为空,但如果我再次键入“n”作为第二个字母,它将使用“In”进行 ajax 调用,如果没有响应,我想停止第二次 ajax 调用第一个请求

最佳答案

您可以添加一个标志,然后根据所述标志的值有条件地发出 ajax 请求:

var has_match = true;
jQuery("#" + msgSubject).autocomplete({
    source: function (request, response) {          
        if(has_match) {
            jQuery.ajax({
                url: inboxControl.systemParams.allTemplateData + '/' + request.term + inboxControl.systemParams.API_EXTENSION,
                dataType: "json",
                async: false,
                contentType: 'application/json; charset=utf-8',

                error: function (jq, status, message) {
                    //alert('A jQuery error has occurred. Status: ' + status + ' - Message: ' + message); 
                },
                success: function (data) {

                    if (data.results) {
                        response(data.results.templates);
                    } else {
                        has_match = false;
                    }

                }
            });
        }
    },
    minLength: 1

});

关于javascript - 如果没有结果,如何禁用 jquery ajax- 自动完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20512217/

相关文章:

asp.net - 当内容页位于子文件夹中时,jQuery 不会加载到母版页上

jQuery datepicker--如何在将鼠标悬停在小日历图标上时关闭椭圆工具提示

javascript - 如何建立具有youtube视频的视频播放列表?

php - 从 PHP 脚本获取响应

java - 是否可以在输入类型 ="file"上执行此操作?

javascript - 字符串拆分不起作用

javascript - Angular UI 路由器 - 状态查询字符串参数不起作用

javascript - AngularJS orderby 通过复选框过滤

jquery - Bootstrap - 修复了没有其余栏的可折叠导航栏按钮

ajax - 如何使用 jquery load 方法将文件的内容加载到变量中?