我知道有很多JavaScript转义问题,但是似乎没有什么适合我的需求。
我有textarea元素在JSP上动态显示。如果表单提交无效,我需要用用户输入的值重新填充这些字段。我这样做是这样的(注意:简化版):
var textareaBox = document.getElementById("myTextArea");
if (textareaBox) {
textareaBox.value = '${myForm.myValue}';
}
一切正常,直到用户在包含特殊字符的框中输入一个值。我试过分别使用
escape
和unescape
JavaScript函数,但无济于事。有谁知道我该如何处理这些特殊字符值?请注意,我显然不希望在文本区域中转义的文本,因为这对用户来说看起来不太好。
最佳答案
使用JSTL的<c:out>
标记对其进行转义并将其分配为文本区域的innerHTML
:
textareaBox.innerHTML = '<c:out value="${myForm.myValue}" />';
但是,为什么不使用JS而不直接将其显示在textarea的正文中呢?
<textarea id="myTextArea"><c:out value="${myForm.myValue}" /></textarea>
<c:out>
(及其EL函数副本fn:escapeXml()
)转义XML特殊字符。也可以看看:
Not able to display special characters properly in a JSP page