JavaScript转义表单值

时间:2011-12-01 18:14:24

标签: javascript jsp escaping

我知道有很多JavaScript逃避问题,但似乎没有什么能满足我的需求。

我在JSP上动态显示textarea元素。在无效表单提交的情况下,我需要使用用户输入的值重新填充这些字段。我是这样做的(注意:简化版):

var textareaBox = document.getElementById("myTextArea");
if (textareaBox) {
    textareaBox.value = '${myForm.myValue}';
}

一切正常,直到用户在包含特殊字符的框中输入值。我已尝试单独使用escapeunescape JavaScript函数,但无法使用。

有谁知道我如何处理这些特殊字符值?请注意,我显然不希望textarea中的转义文本,因为这对用户来说不太好看。

1 个答案:

答案 0 :(得分:2)

使用JSTL<c:out>标记对其进行转义,并将其指定为文本区域的innerHTML

textareaBox.innerHTML = '<c:out value="${myForm.myValue}" />';

但是为什么不直接在textarea的主体中显示它而不需要JS?

<textarea id="myTextArea"><c:out value="${myForm.myValue}" /></textarea>

<c:out>(及其EL函数对应fn:escapeXml())转义XML特殊字符。

另见: