2016-03-07 6 views
0

У меня есть несколько текстовых полей в частичном изображении бритвы, которые будут доступны в зависимости от состояния. Из этого 1 прикреплен к автодополнять с кодом ниже, но, когда частичный вид загружен, то я получаю ошибку (если текстовое поле не доступно)Автозаполнение с элементом рендеринга в динамическое текстовое поле в режиме бритвы?

0x800a138f - JavaScript runtime error: Unable to set property '_renderItem' of undefined or null reference

если текстовое поле имеется ввиду Бритва, то ошибка не появляется ,

Мой код для Jquery является

<script type="text/javascript"> 
$(function() { 
    var view = $(document).findByClass("product-view"); 
    var companysource = view.data("datasource-url"); 
    $("#txtcompany").autocomplete({ 
     minLength: 0, 
     source: function (request, resonse) { 
      $.ajax({ 
       url: companysource, 
       data: { term: $('#txtcompany').val() }, 
       dataType: "json", 
       type: "GET", 
       success: function (data) { 
        resonse(data); 
       } 
      }); 
     }, 
     focus: function (event, ui) { 
      $("#txtcompany").val(ui.item.Name); 
      return false; 
     }, 
     select: function (event, ui) { 
      $("#txtcompany").val(ui.item.Name); 
      return false; 
     }, 
     change: function (event, ui) { 
      if (ui.item == null) { 

      } else { 

      } 
     } 
    }) 
    .data("ui-autocomplete")._renderItem = function (ul, item) { 
     return $("<li>") 
      .data("ui-autocomplete-item", item) 
      .append("<div style='margin-bottom:2px; padding:1px 1px; font-size:14px;'><a>" + "<b>Company Name: </b>" + item.Name + "</a></div>") 
      .appendTo(ul); 
    }; 
}); 

ответ

0

Вы должны сначала проверить, если текстовое поле присутствует в йот:

var txtcompany = $("#txtcompany"); 
    alert(txtcompany.length); 

    if (txtcompany.length === 1) { 

     txtcompany.autocomplete({ ... 

    }; 
+0

Благодаря @irfan. Я сделал что-то подобное. Length> 1 – Hector