2013-12-13 33 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

編輯:

的想法是,如果它被宣佈像這樣的舊文本框出現帶有新元素ELEMENT 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