我知道有很多JavaScript转义问题,但是似乎没有什么适合我的需求。
我有textarea元素在JSP上动态显示。如果表单提交无效,我需要用用户输入的值重新填充这些字段。我这样做是这样的(注意:简化版):
var textareaBox = document.getElementById("myTextArea"); if (textareaBox) { textareaBox.value = '${myForm.myValue}'; }
一切正常,直到用户在包含特殊字符的框中输入一个值。我尝试过单独使用escape和unescapeJavaScript函数,但无济于事。
escape
unescape
有谁知道我该如何处理这些特殊字符值?请注意,我显然不希望在文本区域中转义的文本,因为这对用户来说看起来不太好。
使用JSTL的<c:out>标记对其进行转义并将其分配给innerHTML文本区域:
<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特殊字符。
fn:escapeXml()