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