一尘不染

JavaScript转义表单值

jsp

我知道有很多JavaScript转义问题,但是似乎没有什么适合我的需求。

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

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

一切正常,直到用户在包含特殊字符的框中输入一个值。我尝试过单独使用escapeunescapeJavaScript函数,但无济于事。

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


阅读 320

收藏
2020-06-10

共1个答案

一尘不染

使用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特殊字符。

2020-06-10