2016-10-06 1 views
1

У меня есть страница с несколькими полями автозаполнения. Мне нужно передать некоторые дополнительные данные каждого поля, к которому прикреплен автозаполнение (например, «data-field-id =« X »)jQuery autocomplete, pass data-property field autocomplete находится в

Autocomplete инициализируется классом« автозаполнение ». Эти поля автозаполнения генерируются динамически.

в настоящее время мой код выглядит следующим образом:

var autocompleteFields = $(".dynamic-fields.autocomplete"); 

// autocomplete data getter for necessary fields 
if (autocompleteFields.length > 0) { 
    autocompleteFields.autocomplete({ 
     source: function (request, response) { 
      request.module = 'shared'; 
      request.page = 'get_autofill_data.php'; 
      $.ajax({ 
       url: "ajax.php", 
       data: request, 
       dataType: "json", 
       type: "POST", 
       success: function (data) { 
        response(data); 
       } 
      }); 
     }, 
     select: function (event, ui) { 
      $(this).val(ui.item.value); 
     } 
    }); 
} 

мне нужно пройти, например, «данные поля идентификатор» -property в request.x используемого в данный момент поля возможно ли это какой-то, как я не мог.? Не нашли ясного способа сделать это в документации ..

+0

Вы получаете объекты DOM в autocompleteFields правильно? – Prasath

+0

Если получить правильное значение, то var dataFieldId = autocompleteFields.attr ('data-field-id'); request.x = dataFieldId; Надеюсь, что это сработает. – Prasath

+0

Это, похоже, работает, когда есть один экземпляр autocomplete, но с двумя, оба получают одинаковый идентификатор поля данных, хотя он отличается от html. –

ответ

0

Попробуйте это. Это будет работать.

var autocompleteFields = $(".dynamic-fields.autocomplete"); 
if (autocompleteFields.length > 0) { 
autocompleteFields.autocomplete({ 
    source: function (request, response) { 
     request.module = 'shared'; 
     request.page = 'get_autofill_data.php'; 
     request.x = $(this)[0].element.attr('data-field-id') 
     $.ajax({ 
      url: "ajax.php", 
      data: request, 
      dataType: "json", 
      type: "POST", 
      success: function (data) { 
       response(data); 
      } 
     }); 
    }, 
    select: function (event, ui) { 
     $(this).val(ui.item.value); 
    } 
}); 
} 
+0

Кажется, что все работает правильно! Большое спасибо :) Я попытался получить доступ к $ (this) ранее, но не имел ключа [0] в нем. –

 Смежные вопросы

  • Нет связанных вопросов^_^