jquery prepend到textarea text()

shi*_*ino 5 jquery text textarea prepend

我有一个文本区域.我可以设置它的文本

$("#mytextarea").text("foo")
Run Code Online (Sandbox Code Playgroud)

我可以像这样在文本区域前面加:

$("#mytextarea").prepend("foo")
Run Code Online (Sandbox Code Playgroud)

但是我不能像这样在jquery text()对象之前添加:

$("#mytextarea").text().prepend("foo")
Run Code Online (Sandbox Code Playgroud)

我想这样做的原因是,如果我的用户让我在前面添加这个文本:

$("#mytextarea").prepend("<script>alert('lol i haxed uuu!')</script>")
Run Code Online (Sandbox Code Playgroud)

...脚本执行,我输了.

救命?

SLa*_*aks 9

您需要修改val()属性:

$('#mytextarea').val(function(index, old) { return '...' + old; });
Run Code Online (Sandbox Code Playgroud)

顺便说一下,获取textarea内容的正确方法是调用val(),而不是text():