将一个标签附加到textarea jquery中的值

时间:2012-06-07 06:11:54

标签: javascript jquery

如何在textarea内的值上附加一个标签,它只会在按下SHIFT + ENTER键后附加它,

这是我的代码要附加到文本区域,它不起作用??

$('#textarea').append("<br/>");我认为还有一些不足之处。

DEMO

谢谢。 。

2 个答案:

答案 0 :(得分:7)

你真的想把字符放在值中吗?

​$("textarea").val(function(i,v){
    return v + "<br/>";
});​​​​

或者只是添加一个新行?

​$("textarea").val(function(i,v){
    return v + "\nfoo";
});​​​​​​​

小提琴:http://jsfiddle.net/jonathansampson/SNeyy/

如果您只想回复 shift + ,请输入

$("textarea").on("keypress", function(e){
    if ( e.which === 13 && e.shiftKey ) {
        $(this).val(function(i,v){
            return v + "<br/>"; // or return v + "\n"; (whatever you want)
        });
    }
});​​​​

小提琴:http://jsfiddle.net/jonathansampson/SNeyy/1/

答案 1 :(得分:4)

您正在尝试更改textarea的值。要添加字符串“&lt; br /&gt;”你必须使用

$('#textarea').val($('#textarea').val() + '<br/>');

并添加您必须使用的新行

$('#textarea').val($('#textarea').val() + "\n");

Textarea只能将一个文本节点作为其子节点。 <textarea><br/></textarea>使用不正确。如果要添加字符串“&lt; br /&gt;”,则html代码应为

<textarea>&lt;br/&gt;</textarea>

并添加新行,html代码应为

<textarea>
</textarea>

换句话说,您无法使用<textarea><br/></textarea>