Предложения автозаполнения не работают для ввода текста в dhtmlxform, используя ajax

Привет я использую форму dhtmlx в моем приложении. Когда пользователь вводит текст в текстовое поле, я хочу, чтобы предложения автозаполнения появлялись из моей базы данных, что я вижу на консоли. Но это не отображается как список предложений под этим полем ввода. Пожалуйста, предложите, как я могу сделать эту работу......

В шапке часть-

 <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>

В части сценария ----

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.);                        
                  }
               });
              }
           });

1 ответ

Решение

Что ж, я получил ответ от команды dhtmlx, что они не поддерживают функцию автозаполнения для поля ввода dhtmlx, но она уже используется для комбинирования dhtmlx.

Поэтому я разобрался с альтернативным способом. Определение поля ввода в виде текстового поля html вместо dhtmlx. К этому добавьте JQuery и ajax. Отлично работает. Я действительно надеюсь, что команда dhtmlx предоставит нам функцию автозаполнения для текстового поля.

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
             });
           });
        }); 
Другие вопросы по тегам