1

Je suis en train de mettre en œuvre jQuery autocomplete dans ma solution, mais je suis une erreur ReferenceError: la réponse est non définieReferenceError: la réponse est non définie sur autocomplete jquery appel ajax en design pattern singleton

Voici mon Code

(function ($) { 
 
     $.SupportArticleObj = function (p) { 
 
      var SupportArticle = { 
 
       config: { 
 
        isPostBack: false, 
 
        async: false, 
 
        cache: false, 
 
        type: 'POST', 
 
        contentType: "application/json; charset=utf-8", 
 
        data: { data: '' }, 
 
        dataType: 'json', 
 
        baseURL: "Modules/SupportArticle/Services/SupportArticleWebService.asmx/", 
 
        url: "", 
 
        method: "", 
 
        ajaxCallMode: 0, 
 
        PortalID: PortalID, 
 
        UserModuleID: UserModuleID, 
 
        SecureToken: SecureToken, 
 
        UserName: UserName 
 
    
 
       }, 
 
       init: function() { 
 
        $("#searchSupport").autocomplete({ 
 
         source: function (request, response) { 
 
          searchTerm = request.term; 
 
          SupportArticle.getSearchData(searchTerm); 
 
         } 
 
        }); 
 
       }, 
 
       getSearchData: function (searchTearm) { 
 
        SupportArticle.config.method = "SearchSupportArticle"; 
 
        SupportArticle.config.url = SupportArticle.config.baseURL + SupportArticle.config.method; 
 
        SupportArticle.config.data = JSON2.stringify({ 
 
         searchTerm: searchTerm, 
 
         portalID: SupportArticle.config.PortalID, 
 
         userModuleID: SupportArticle.config.UserModuleID, 
 
         userName: SupportArticle.config.UserName, 
 
         secureToken: SupportArticle.config.SecureToken 
 
        }); 
 
        SupportArticle.ajaxCall(SupportArticle.config); 
 
       }, 
 
       ajaxSuccess: function (data) { 
 
        response(data); 
 
       }, 
 
       ajaxFailure: function() { 
 
        jAlert('Somethings went wrong', 'Support Article'); 
 
       }, 
 
       ajaxCall: function (config) { 
 
        $.ajax({ 
 
         type: SupportArticle.config.type, 
 
         contentType: SupportArticle.config.contentType, 
 
         cache: SupportArticle.config.cache, 
 
         url: SupportArticle.config.url, 
 
         data: SupportArticle.config.data, 
 
         dataType: SupportArticle.config.dataType, 
 
         success: SupportArticle.ajaxSuccess, 
 
         error: SupportArticle.ajaxFailure, 
 
         async: SupportArticle.config.async 
 
        }); 
 
       } 
 
      }; 
 
      SupportArticle.init(); 
 
     }; 
 
     $.fn.callSupportArticle = function (p) { 
 
      $.SupportArticleObj(p); 
 
     }; 
 
    })(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>

Ce que je suis en train de faire ici est, je suis appeler un webservice qui va chercher les enregistrements sur la base de données et retourner comme une liste et je veux lier cette liste sur la zone de texte comme une saisie semi-automatique. Mais le problème est lors de l'exécution de la solution dans le navigateur, j'ai eu une erreur ReferenceError: la réponse n'est pas définie. J'ai essayé http://www.c-sharpcorner.com/UploadFile/da55bf/Asp-Net-autocomplete-textbox-using-jquery-json-and-ajax/ comme référence.

Comment puis-je résoudre le problème de ReferenceError: la réponse est non définie

While running on browser error seems like this. ReferenceError: response is not defined

+0

pourriez-vous ajouter un lien vers la source de la bibliothèque en cours d'utilisation? – jkris

+0

son jQuery UI - v1.10.3 –

Répondre

1

Écrivez votre script comme ci-dessous:

AutoDemoDataBase: function() { 
      $("#lytA_ctl29_txtSearchName").autocomplete({ 
       source: function (request, response) { 
        var param = JSON.stringify({ 
         userModuleID: UserModuleID, 
         portalID: autoComplete.config.portalId, 
         prefix: $("#lytA_ctl29_txtSearchName").val(), 
         userName: autoComplete.config.UserName, 
         secureToken: SageFrameSecureToken 
        }); 
        $.ajax({ 
         type: autoComplete.config.type, 
         contentType: autoComplete.config.contentType, 
         cache: autoComplete.config.cache, 
         url: autoComplete.config.baseURL + "GetNames", 
         data: param, 
         dataType: autoComplete.config.dataType, 
         async: autoComplete.config.async, 
         success: function (data) { 
          response($.map(data.d, function (item) { 
           return {          
            value: item.Name 
           } 
          })) 
          }, 
         error: function (response) { 
          jAlert(response.responseText); 
         }, 
         failure: function (response) { 
          jAlert(response.responseText); 
         } 
        }); 
       }, 
       select: function (e, i) { 
        $("#hfId").val(i.item.val); 
        $('#test').text(i.item.val); 
       }, 
       minLength: 1 
      }); 
     } 

Votre fonction ajax succès est de portée de la réponse.

+0

Je dois suivre le modèle singleton –

+0

J'ai mis à jour ma réponse utiliser comme ci-dessus dans votre modèle singleton –

+0

J'ai besoin de résoudre ce problème en motif singleton –