2013-09-21 13 views
0

我需要將一個<a>標籤分配給textarea值,並用逗號分隔。我試圖插入從ajax請求的響應中獲得的電子郵件ID。我如何使用JS實現這一點?將html <a>標籤指定爲textarea值

我嘗試使用:

$('reminder_email').value += "<a href='#' id='+id'>+email+</a>"; 
+0

你應該添加更多的代碼並闡明你要做什麼。 – rfoo

+0

我試圖插入電子郵件作爲鏈接作爲textarea的值 – rubyist

回答

0

假設 'reminder_email' 是相關textareaid,和響應是電子郵件的數組:

var emailAddressesArray = ['[email protected]', '[email protected]']; 
$('#reminder_email').val(emailAddressesArray.join(', ')); 

JS Fiddle demo

如果,另一方面,你要創建一個a元件與mailto協議HTML(用於複製/粘貼其他地方):

var email = '[email protected]'; 
$('#reminder_email').val('<a href="mailto:' + email + '">' + email + '</a>'); 

JS Fiddle demo

請注意,您不能在textarea內創建可點擊的鏈接,因爲它們不能包含HTML(只是文本)。

如果,但是,你必須從中創建值的對象:

var email = [{ 
    'address': '[email protected]', 
     'id': 'emailOne', 
     'text': 'UserNameOne' 
}, { 
    'address': '[email protected]', 
     'id': 'emailTwo', 
     'text': 'UserNameTwo' 
}]; 
$('#reminder_email').val(function(_, v){ 
    for (var i = 0, len = email.length; i < len; i++){ 
     v += '<a href="mailto:' + email[i].address + '" id="' + email[i].id + '">' + email[i].text + '</a>, '; 
    } 
    return v.slice(0, v.length - 2); 
}); 

JS Fiddle demo

原因代碼:

$('reminder_email').value += '<a href='#' id='+id'>+email+</a>; 

沒有工作是雙重的:

  1. $('reminder_email')是尋找reminder_email標籤(不存在)一個選擇;假設這是你正在尋找你的id需要使用:$('#reminder_email')代替,
  2. 一個jQuery對象/收集沒有.value財產,而是使用val()方法(不帶參數得到的電流值,或用參數設置一個新值)。
+0

哦,你是正確的大衛......正如你所說,textarea將只包含文本,不能點擊..我想顯示爲鏈接..但由於它是在一個窗體內,當提交時,我需要抓住這些電子郵件ID作爲參數。所以,對於那個解決方案的任何想法......? – rubyist

+0

你可以展示你正在使用的是什麼?什麼(相關)變量和HTML?我不得不猜測很多正在發生的事情,而猜測通常不會產生很好甚至是好的答案。 –

+0

我有一個表單,我有一個輸入字段和一個textarea ...我有另一個div容器,其中包含所有的電子郵件ID與添加和刪除鏈接..所以當一個電子郵件ID在div容器中點擊時,該電子郵件ID應該添加在軌道形式..當表單提交時,我得到控制器中的電子郵件的參數,併發送一封郵件到該電子郵件ID .. – rubyist

0

希望您有jQuery的進口,試試這個:

$('reminder_email').val("<a href='#' id='"+id+"'>" + email + "</a>"); 

你追加了嗎?你爲什麼用+=

+0

因爲我可能從其他元素的每個點擊事件獲得多個電子郵件ID ... – rubyist