2017-05-03 14 views
0

Salut J'utilise le formulaire dhtmlx dans mon application. Lorsqu'un utilisateur saisit un texte dans une zone de texte, je souhaite que les suggestions de saisie semi-automatique soient intégrées à ma base de données, ce que je peux voir sur la console. Mais ce n'est pas affiché comme liste de suggestions ci-dessous cette boîte de saisie. S'il vous plaît suggérer comment je peux faire ce travail ......Suggestions de saisie semi-automatique ne fonctionnant pas pour la zone de texte d'entrée dans dhtmlxform en utilisant ajax

Dans l'en-tête partiel

<script src="js/jquery-1.11.1.min.js"></script> 
    <script src="js/jquery-ui.min.js"></script> 
    <link rel="stylesheet" type="text/css" href="dhtmlx/dhtmlxSuitePRO/codebase/dhtmlx.css" /> 
    <link rel="stylesheet" href="dhtmlx/dhtmlxScheduler/codebase/dhtmlxscheduler.css" type="text/css" media="screen" title="no title" charset="utf-8"> 
    <script src="dhtmlx/dhtmlxSuitePRO/codebase/dhtmlx.js"></script> 
    <script src="dhtmlx/dhtmlxScheduler/codebase/dhtmlxscheduler.js" type="text/javascript" charset="utf-8"></script> 
    <script src='dhtmlx/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_tooltip.js' type="text/javascript" charset="utf-8"></script> 
    <script src="dhtmlx/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_all_timed.js" type="text/javascript" charset="utf-8"></script> 
    <script src="dhtmlx/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_minical.js" type="text/javascript" charset="utf-8"></script> 
    <script src="dhtmlx/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_serialize.js" type="text/javascript" charset="utf-8"></script> 

Dans la partie script ----

var layoutObj6 = document.getElementById("layoutObj6"); 
myLayout6.cells("a").setText(" Impersonation:"); 
myImpersonationFormData = [ 
      {type: "block", list:[ 
      {type: "input", name: "txtImpersonate", id: "txtImpersonate", offsetLeft: 0, inputWidth: 125}, 
      {type: "newcolumn"}, 
      {type: "button", value: "Set", name: "btn_impersonate", id: "btn_impersonate", width: 20} 
      ]} 
      ]; 

myImpersonationForm = 
myLayout6.cells("a").attachForm(myImpersonationFormData); 
myLayout.cells("a").appendObject(layoutObj6); 
myImpersonationForm.attachEvent("onInputChange", function (name, value,myImpersonationForm){ 
if(name == 'txtImpersonate'){ 
     $.ajax({ 
       url : "/MyProject/GetUserList", 
       type : "GET", 
       data : { user : value}, 
       dataType : "jsonp", 
       success : function(data) { 
        response(data.userList);// can see the list in browser console 
        }, 
       error: function(jqXHR, textStatus, errorThrown){ 
       alert("ERROR!!! \n \n System Error code: " + jqXHR.status + "\n \n Please contact Server administrator.);       
        } 
       }); 
       } 
      }); 

Répondre

0

Eh bien, je suis un répondre à l'équipe dhtmlx qu'ils ne supportent pas la fonctionnalité de saisie semi-automatique pour la boîte de saisie dhtmlx, mais qu'elle est déjà utilisée pour le combo dhtmlx.

J'ai donc trouvé une autre solution. Définir la zone de saisie comme une zone de texte html au lieu de dhtmlx. Pour cela, ajoutez JQuery et ajax. Il fonctionne comme un charme. J'espère vraiment que l'équipe dhtmlx nous fournira une fonctionnalité de saisie semi-automatique pour une zone de texte.

myImpersonationForm = myLayout6.cells("a").attachHTMLString('<input type="text" class="inputTextClass" id = "txtImpersonate" name ="txtImpersonate" />' 
+' <button id="btn_impersonate" class="btnSetClass" name="btn_impersonate" onclick="javascript:fnImpersonateSet();">Set</button></form> '); 
$(document).ready(function() { 
      window.history.forward(1); 
      $(function() { 
       $("#txtImpersonate").autocomplete({ 
         source : function(request,response) { 
         if (request.term.length < 3) { 
          //don't do anything 
          return; 
         } 
         $.ajax({ 
          url : imUrl, 
          type : "GET", 
          data : { user : request.term}, 
          dataType : "jsonp", 
          success : function(data) { 
          response(data.userList); 
          }, 
         error: function(jqXHR, textStatus, errorThrown){ 
           alert("ERROR!!! \n \n System Error code: " + jqXHR.status + "\n \n Please contact your Server administrator. ");       
         } 
         }); 
       }, 
       autoFocus : true, 
       scroll : true 
      }); 
      }); 
     });