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

Javascript 如果没有结果,如何禁用jquery ajax-自动完成?,javascript,jquery,ajax,Javascript,Jquery,Ajax,这是我的代码,如果输入的文本没有结果,我想禁用ajax调用,在这种情况下,我想搜索一个单词“India”,如果我键入“I”,它将进行ajax调用并搜索带有“I”的单词,假设结果为空,但如果我再次键入“n”作为第二个字母,它将进行带有“in”的ajax调用,如果第一个请求没有响应,我想停止第二个ajax调用。您可以添加一个标志,然后根据所述标志的值有条件地发出ajax请求: jQuery("#" + msgSubject).autocomplete({ source: func

这是我的代码,如果输入的文本没有结果,我想禁用ajax调用,在这种情况下,我想搜索一个单词“India”,如果我键入“I”,它将进行ajax调用并搜索带有“I”的单词,假设结果为空,但如果我再次键入“n”作为第二个字母,它将进行带有“in”的ajax调用,如果第一个请求没有响应,我想停止第二个ajax调用。您可以添加一个标志,然后根据所述标志的值有条件地发出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

   });

haii..我已经用jquery中的键代码修复了这个问题,如果我们按back space,它将重置has_match的值。。。谢谢…

现在我发现了一个新问题,假设我输入了一个单词“INDIE”而不是“INDIA”,它将返回null,并且不会再次调用ajax请求,但是如果我从“INDIE”中删除字母“E”,比如“INDI”,它将不会给出结果,因为“has_match”的值为false,我如何解决这个问题呢(
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

});
   this.msgSubjectClick = function () {
        jQuery("." + preparams.displaySettings.msgSubjectClass).click(function () {

            var msgSubject = jQuery(this).attr('id');   

            if(msgSubject=="patientSubject")
            {
                var subjectID=preParams.displaySettings.patientSubjectId;
            }else
            {
               var ret = msgSubject.split("_");
               var str1 = ret[0];
               var str2 = ret[1];
               var subjectID=preParams.displaySettings.subjectID+str2;
             }

            var has_match = true;
            inboxControl.has_match=has_match;
            jQuery("#" + msgSubject).autocomplete({
                source: function (request, response) {
                 if(inboxControl.has_match) {
                    jQuery.ajax({
                        url: inboxControl.systemParams.allTemplateData + '/' + request.term + inboxControl.systemParams.API_EXTENSION,
                        dataType: "json",
                        async: false,
                        contentType: 'application/json; charset=utf-8',
                        beforeSend: function (xhr) {
                            xhr.setRequestHeader(preParams.API_KEY, connSysParams.apiSecretKey);
                        },
                        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 {

                                inboxControl.has_match = false;                             
                                jQuery("#" +subjectID).val(""); 
                                response("");
                            }

                        }
                    });
                    }
                },
                minLength: 1,
                select: function( event, ui )   {   

                jQuery("#" +subjectID).val(ui.item.id); 
            },


            });


        }).keypress(function(event) {

         var keycode = (event.keyCode ? event.keyCode : event.which);

            if(keycode == '8') {

                    inboxControl.has_match = true;
             }

         });
    };