1

嗨我安德魯·惠特克這個自動完成插件 - DEMO可以說我有一個textarea的jQuery的自動完成@mention

「@peterwateber歡迎」

我一個字符串它要在一個隱藏的標籤輸出

「@ [peterwateber]歡迎」

我應該怎麼做?我不是那種擅長的JavaScript ...

我試着看這個代碼Hawkee

here
+0

你好,你的意思是這樣的讓我知道如果這有幫助,我會將它設置爲答案http://jsfiddle.net/LHNky/3/,有一個很好的!乾杯。 **或**讓我知道,如果其他東西會試圖幫助你! – 2012-04-08 05:19:42

+1

你的意思是「我希望它以隱藏標籤輸出」? – codef0rmer 2012-04-08 05:21:11

+0

@Tats_innit絕對是!但問題是我如何才能輸出選定的建議,並同時在隱藏標籤 讓我們說:「@peterwateber hey!」在textarea和隱藏標籤「@ [peterwateber]嘿!」 – 2012-04-08 05:21:51

回答

4

你好工作演示這裏:http://jsfiddle.net/67dxH/

已經有上面商量好了一樣你說的行爲是這樣的:value of the hidden tag as = @[C#] and the textarea as @C#

喬普這是有幫助的人,讓我知道它是怎麼回事,歡呼! :)

jQuery代碼

function split(val) { 
    return val.split(/@\s*/); 
} 

function extractLast(term) { 
    return split(term).pop(); 
} 

function getTags(term, callback) { 
    $.ajax({ 
     url: "http://api.stackoverflow.com/1.1/tags", 
     data: { 
      filter: term, 
      pagesize: 5 
     }, 
     type: "POST", 
     success: callback, 
     jsonp: "jsonp", 
     dataType: "jsonp" 
    });  
} 

$(document).ready(function() { 

    $("#tags") 
    // don't navigate away from the field on tab when selecting an item 
    .bind("keydown", function(event) { 
     if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) { 

      event.preventDefault(); 
     } 
    }).autocomplete({ 
     source: function(request, response) { 
      if (request.term.indexOf("@") >= 0) { 
       $("#loading").show(); 
       getTags(extractLast(request.term), function(data) { 
        response($.map(data.tags, function(el) { 
         return { 
          value: el.name, 
          count: el.count 
         } 
        })); 
        $("#loading").hide();      
       }); 
      } 
     }, 
     focus: function() { 
      // prevent value inserted on focus 
      return false; 
     }, 
     select: function(event, ui) { 
      var terms = split(this.value); 
      // remove the current input 
      terms.pop(); 
      // add the selected item 
      ui.item.value = "@" + ui.item.value; 
      terms.push(ui.item.value); 
      // add placeholder to get the comma-and-space at the end 
      terms.push(""); 
      this.value = terms.join(""); 
      return false; 
     } 
    }).data("autocomplete")._renderItem = function(ul, item) { 
     return $("<li>") 
      .data("item.autocomplete", item) 
      .append("<a>@[" + item.label + "]&nbsp;<span class='count'>(" + item.count + ")</span></a>") 
      .appendTo(ul); 
    }; 
});​ 
+0

宇!謝謝我忘了_renderItem woohooo非常感謝你的歡呼! – 2012-04-08 05:45:52

+0

+1爲你,不用擔心布魯夫,有一個很好的!乾杯。 – 2012-04-08 05:46:37

+0

嗨@Tats_innit如果我想要這樣的東西,請點擊http://jsfiddle.net/peterwateber/gucPn/11/?儘管使用jquery自動完成。這只是使用hawkees的問題,只有它有下拉和上下箭頭鍵的問題。 – 2012-04-08 06:05:14