2013-12-13 4 views
1

Я хотел бы знать, как добавить элементы автозаполнения jquery ui после того, как страница активна.Как добавить элемент автозаполнения jquery ui?

Идея состоит в том, что есть два элемента, и я хотел бы добавить третий элемент после нажатия кнопки отправки.

Вот мой код:

$(function() { 
    var projects = [{ 
      value: '123', 
      label: 'Element 1', 
      desc: 'Element 1 Description', 
      icon: 'element1icon.png' 
     },{ 
      value: '456', 
      label: 'Element 2', 
      desc: 'Element 2 Description', 
      icon: 'element2icon.png' 
     } 
    ,]; 

    $("#desc1").autocomplete({ 
     minLength: 0, 
     source: projects, 
     focus: function(event, ui) { 
      $("#desc1").val(ui.item.label); 
      return false; 
     }, 
     select: function(event, ui) { 
      $("#desc1").val(ui.item.label); 
      $("#desc-id1").val(ui.item.value); 

      return false; 
     } 
    }) 
    .data('ui-autocomplete')._renderItem = function(ul, item) { 
     return $('<li>') 
     .append('<a>' + item.label + '<br>' + item.desc + '</a>') 
     .appendTo(ul); 
    }; 
}); 

$("#submit").click(function() { 
    var itemtoadd = $("#addelementtext").val(); 
    alert("This action should insert the element " + itemtoadd); 
}); 

HERE IS THE FIDDLE

EDIT:

Идея заключается в том, что старое текстовое поле появляется с новым элементом ЭЛЕМЕНТ 3, как если бы он был объявлен как это:

var projects = [{ 
      value: '123', 
      label: 'Element 1', 
      desc: 'Element 1 Description', 
      icon: 'element1icon.png' 
     },{ 
      value: '456', 
      label: 'Element 2', 
      desc: 'Element 2 Description', 
      icon: 'element2icon.png' 
     },{ 
      value: '789', 
      label: 'Element 3', 
      desc: 'Elemen 3 Description', 
      icon: 'element3icon.png' 
     }, 

    ,]; 

ответ

3

Добавить перед кнопкой:

$('#submit').before('<input type="text" value="test" />'); 

http://jsfiddle.net/2GvuB/1/

+0

Привет спасибо за ответ Мэтью, однако, что я ищу, что элемент 3 добавляется (не текстовое поле, а скорее новый вариант в автозаполнения) (Я редактировал вопрос для лучшего понимания) С уважением! – vashzero

+0

В этом случае то, что вы хотите сделать, это присоединить события к новым элементам, которые вы добавляете. Вы можете сделать это, не зная их. Смотрите эту обновленную скрипку: http://jsfiddle.net/2GvuB/4/ –

+0

Еще раз спасибо Мэтью за ваш ответ. Я не уверен, как работает ваш код, но конечный результат должен быть в первом текстовом поле нового элюмента (поэтому в целом должно быть не 3 элемента, а два элемента: Элемент 1, Элемент 2 и Элемент 3). Я нашел в Интернете аналогичное решение, но я не могу его адаптировать к нашей скрипке. http://jsfiddle.net/3PZJz/1/light/ – vashzero

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