сохраняйте идентификаторы выбранных результатов автозаполнения Kendo UI в скрытом поле ввода


Я написал этот код, чтобы использовать автозаполнение Kendo UI. Мне нужно показать заголовок выбранного результата в текстовом поле и сохранить if в каком-то скрытом вводе, как я могу получить id. похоже, что выбор не работает.

 $("[data-autocomplete]").each(function () {
            var luurl = $(this).attr('data-lookupurl');
            var thisElemt = $(this);
            $(this).kendoAutoComplete({
                minLength: 3,
                separator: ", ",
                dataTextField: "title",
                select: function (e) {
                    var selectedOne = this.dataItem(e.item.Index());
                    console.log(kendo.stringify(selectedOne));
                },
                dataSource: new kendo.data.DataSource({
                    serverFiltering: true,
                    serverPaging: true,
                    pageSize: 20,
                    transport: {
                        read: luurl,
                        dataType: "json",
                        parameterMap: function (data) {
                            return { title: thisElemt.val() };
                        },
                        schema: {
                            model: {
                                id: "id",
                                fields: {
                                    id: { type: "id" },
                                    title: { type: "string" }
                                }
                            }
                        }
                    }
                })
            });
        });
3 2

3 ответа:

Есть ошибка опечатки, вы должны использовать: e.item.index() вместо e.item.Index() (index строчная буква).

Таким образом, функция select будет иметь вид:

select       : function (e) {
    var selectedOne = this.dataItem(e.item.index());
    console.log(kendo.stringify(selectedOne));
},

И более простой способ:

var autocomplete = $("#autoCompleteId").data("kendoAutoComplete");
console.log(autocomplete.listView._dataItems[0]);

Вы можете получить доступ к выбору элемента данных в автозаполнении.элемент управления ListView._dataItems [0] object

Вы можете использовать скрипт

<script>  
$(document).ready(function () {  
  $("#categories").change(function () {  
    var url = '@Url.Content("~/")' + "Limitations/ThanaByDistrict_SelectedState";  
    var ddlsource = "#categories";  
    var ddltarget = "#target";  
    $.getJSON(url, { Sel_StateName: $(ddlsource).val() }, function (data) {  
      $(ddltarget).empty();  
      $(ddltarget).val(data);  
    });  
  });  
});  
</script> 

В контроллере типа

// Get selected combox value  
 public JsonResult ThanaByDistrict_SelectedState ( Guid Sel_StateName )  
 {  
   JsonResult result = new JsonResult ( );  
   objects temp=db . objects . Single ( m => m . ob_guid == Sel_StateName );  
   result . Data = temp.ob_code;  
   result . JsonRequestBehavior = JsonRequestBehavior . AllowGet;  
   return result;  
 }  

Подробнее можно посмотреть ЗДЕСЬ Ссылка