3

您如何在
文本区域内的值上附加标签,它仅在按下 SHIFT+ENTER 键后附加,

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

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

演示

谢谢你。. .

4

2 回答 2

8

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

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

或者只是添加一个新行?

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

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

如果您只想回复shift+ enter

$("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/

于 2012-06-07T06:14:12.673 回答
4

您正在尝试更改textarea. 要添加字符串“<br/>”,您必须使用

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

并添加一个新行,你必须使用

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

Textarea 只能有一个文本节点作为其子节点。<textarea><br/></textarea>是不正确的用法。如果要添加字符串“<br/>”,html代码应该是

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

并添加一个新行,html代码应该是

<textarea>
</textarea>

换句话说,您不能使用<textarea><br/></textarea>

于 2012-06-07T06:13:42.207 回答