2013-04-21 75 views
0

这里是我的代码:插入文本到文本区域的链接

<a href="">Test 1</a> Clicking this will add "Thank you" to textarea<br/> 
<a href="">Test 2</a> Clicking this will add "Good luck" to textarea<br/> 

<textarea rows="5" cols="40" name="replycontent" id="replycontent">Hello World</textarea> 

我想在文字区域通过链接的点击末尾插入文本。所以如果你点击Test 1链接,它会插入Thank you等等。该解决方案需要与所有浏览器兼容(不包括IE6)。这个是fiddle

+0

不知道你真正想要的是什么,反正有正常工作的例子:http://jsfiddle.net/Gcaqe/3/ – RafH 2013-04-21 16:30:50

+0

@RafH这正是然而,我想要什么,我注意到它得到如果我点击了两个链接,则会被替换是否有可能我可以点击两个链接,然后添加两个文本(而不是一次被替换)? – 2013-04-21 16:32:51

+0

http://jsfiddle.net/Gcaqe/10/ – RafH 2013-04-21 16:35:45

回答

3

集attrubute数据文本FOT链接和尝试:

<a href="" data-text="Thank you">Test 1</a> Clicking this will add "Thank you" to textarea<br/> 
<a href="" data-text="Good luck">Test 2</a> Clicking this will add "Good luck" to textarea<br/> 

<textarea rows="5" cols="40" name="replycontent" id="replycontent">Hello World</textarea> 

的javascript:

$("a[data-text]").click(function(){ 
    $("#replycontent").val($(this).attr("data-text")); 
    return false; 
}) 

http://jsfiddle.net/ZqJVN/

UPD:

对于添加(不替换文本)在textarea:

$("a[data-text]").click(function(){ 
    var value = $("#replycontent").val(); 
    $("#replycontent").val(value+$(this).attr("data-text")); 
    return false; 
}) 

http://jsfiddle.net/Vxeye/

UPD的评论:在新行 粘贴文本: http://jsfiddle.net/hkEmn/

+0

你可以请更新小提琴,以便我可以测试其功能? – 2013-04-21 16:29:28

+0

这个解决方案的问题是它取代了textarea中的文本。我想**添加**文本在textarea内容的末尾。这怎么可能? – 2013-04-21 16:34:40

+0

http://jsfiddle.net/ZqJVN/ – Mihail 2013-04-21 16:34:41

3

HTML5的使用数据属性,然后单击()事件..我增加了一个类<a>标签在选择器中具体。

HTML

<a href="#" class="aClass" data-text="Thank You">Test 1</a> Clicking this will add "Thank you" to textarea<br/> 
<a href="#" class="aClass" data-text="Good Luck">Test 2</a> Clicking this will add "Good luck" to textarea<br/> 

JQUERY更新评论

jQuery('.aClass').click(function(e){ 
    e.preventDefault(); //to prevent the default behaviour of a tag 
    var val = jQuery('#replycontent').val(); //get prvious value 
    jQuery('#replycontent').val(val + "\r\n" + jQuery(this).data('text')); //replace it.. ' ' so that there isspace beween the added text 
}); 

更新

<a href="#" class="aClass">Test 1</a> Clicking this will add "Thank you" to textarea<br/> 
<a href="#" class="aClass" >Test 2</a> Clicking this will add "Good luck" to textarea<br/> 

jQuery的

jQuery('.aClass').click(function(e){ 
    e.preventDefault(); //to prevent the default behaviour of a tag 
    var val = jQuery('#replycontent').val(); //get prvious value 
    if(jQuery(this).text() == 'Test 1'){ 
     jQuery('#replycontent').val(val + 'Thank You '); 
    }else{ 
     jQuery('#replycontent').val(val + 'Good Luck '); 
    } 
}); 

fiddle here

fiddle in new line

fiddle with both example

+0

非常好,那么这个解决方案的兼容性呢? – 2013-04-21 16:39:48

+0

这是使用jQuery和HTML 5 ... jQuery的跨浏览器兼容....其中HTML5作品在所有最新的浏览器..如果你只需要添加文本..使用静态文本。等待将更新我的答案 – bipen 2013-04-21 16:42:31

+1

谢谢,是否有可能通过链接在textarea中插入新行? – 2013-04-21 16:44:12

2

您可以将span标签添加到您的特定的词要追加:

<a href="">Test 1</a> Clicking this will add "<span>Thank you</span>" to textarea<br/> 
<a href="">Test 2</a> Clicking this will add "<span>Good luck</span>" to textarea<br/> 

然后你可以使用的append():

$("a").on('click',function(e) { 
    e.preventDefault(); 
    $("#replycontent").append($(this).next('span').text() + ' '); 
}) 

FIDDLE


或更好的,你可以使用HTML5数据属性为你的锚:

<a href="" data-text="Thank you">Test 1</a> Clicking this will add "Thank you" to textarea<br/> 
<a href="" data-text="Good luck">Test 2</a> Clicking this will add "Good luck" to textarea<br/> 

那么你可以做:

$('a').click(function(e){ 
    e.preventDefault(); 
    var val = $('#replycontent').val(); 
    $('#replycontent').val(val + $(this).data('text') + ' '); 
}); 

FIDDLE


编辑

如果要添加新的生产线,每当追加新的价值,您textarea,你只需要使用沿着\n与附加价值:

$('#replycontent').val(val + '\n' + $(this).data('text')); 

Updated Fiddle

+1

谢谢,可以通过链接在textarea插入一个新行吗? – 2013-04-21 16:45:15

+0

@GaryWoods是的,当你在'val()'函数中赋值的时候,你只需要添加'\ n' – Eli 2013-04-21 16:50:38

+0

你能证明我该怎么做,我不能让它工作得令人惊讶。 – 2013-04-21 16:57:03