Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JavaScript填充文本区域_Javascript_Jsp_Dom_Textarea_Jstl - Fatal编程技术网

用JavaScript填充文本区域

用JavaScript填充文本区域,javascript,jsp,dom,textarea,jstl,Javascript,Jsp,Dom,Textarea,Jstl,这是我问的一个问题的扩展。我遇到了一些额外的问题 我正在加载一个带有动态文本区域框的表单。不要问为什么,但我需要使用JavaScript填充这些字段(必须处理AJAX之类的东西)。为了简化事情,让我们假设我的textarea有一个名称“myTextarea”,我想用一个请求参数“myRequestParam”填充它。所以我想做一些类似的事情: updateTextareaText("myTextarea", "${myRequestParameter}"); 从我前面的问题中,我发现这解决了一

这是我问的一个问题的扩展。我遇到了一些额外的问题

我正在加载一个带有动态文本区域框的表单。不要问为什么,但我需要使用JavaScript填充这些字段(必须处理AJAX之类的东西)。为了简化事情,让我们假设我的textarea有一个名称“myTextarea”,我想用一个请求参数“myRequestParam”填充它。所以我想做一些类似的事情:

updateTextareaText("myTextarea", "${myRequestParameter}");
从我前面的问题中,我发现这解决了一些问题:

updateTextareaText("myTextarea", unescape('<c:out value="${myRequestParam}" />'));
试试看#2

function updateTextareaText(textareaElementName, newText) {
    var textareaBox = document.getElementsByName(textareaElementName)[0];
    textareaBox.value = newText;
}
试试看#3

function updateTextareaText(textareaElementName, newText) {
    var textareaBox = document.getElementsByName(textareaElementName)[0];

    var existingNodes = textareaBox.childNodes;
    if (existingNodes.length > 0) {
        textareaBox.removeChild(existingNodes[0]);
    }

    var newTextNode = document.createTextNode(newText);
    textareaBox.appendChild(newTextNode);
}
以上所有松散换行符和/或显示一些特殊字符作为其转义值。我一直在使用以下
myRequestParam
值进行测试:

Test

Newline and Special `~!@#$%^&*()_+-={}|[]\:";'<>?,./
测试
换行和特殊“~!@$%”^&*()_+-={}|[]\:";'?,./
有人知道处理所有不同情况的正确方法吗?顺便说一句,
myRequestParam
值是从数据库中填充的,并以
\r\n
的形式返回换行符,我将其转义为
%0A
,但我不确定这是否是我应该做的。JavaScript最初不会处理
\r\n
(它会抱怨未终止的字符串等)。

试试jQuery:

$('#textAreaId').val('MyValue');


我想它会成功的。

在一次有限的本地尝试中,它对我来说使用了你的#2函数(只尝试了那一个)

标题:

javascript:updateTextareaText(“txtarea”、“Test\n\n基线和特殊的”\~!@$%\^\&*()

因此,您得到的字符串可能不是转义的(\',\&,等等),在这种情况下,Apache的StringEscapeUtils在Commons Langs中有帮助()


除此之外,您还必须对这个javascript案例进行转换,将“替换为”,以此类推。。。不漂亮。

请看我提交的。诀窍是从背面移除转义和整个
转义
东西,而是使用一个利用
StringEscapeUtils的EL函数。escapeJavaScript

我的公司没有批准使用jQuery。出于好奇,jQuery是否允许按名称(而不是id)进行抓取?噢,太痛苦了!jQuery非常棒,节省了很多时间。。。是的,在jQuery中,您可以按id、名称、类、内容获取任何项。。。看看
$('#textAreaId').val('MyValue');
$('#textAreaId').html('MyValue');