带有CR和CF的java javascript textarea maxlength问题
我对最大长度的计算有疑问
Javascript
function charCount(characters) {
document.getElementById('citation').onkeyup = function () {
var s = this.value;
document.getElementById('sBann').innerHTML = (characters - s.length) + " characters left.";
};
}
JSP:
<div class="FormRow">
<textarea class="textAreaLarge" rows="20" cols="180" name="citation" id="citation" maxlength="<%=maxCitationLength%>" onKeyUp="charCount(<%=maxCitationLength%>);"><%=citation%></textarea>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<strong><div id="sBann" class="minitext"><% if (citation != null) { %><%= (maxCitationLength-citation.length()) %><%} else {%><%= (maxCitationLength) %><%}%> characters left.</div></strong>
</div>
我的文本区域的最大长度为1650,其中也应包含空格。 我有一个创建页面。 当我在UI中键入一些内容时,它将行尾作为1个字符考虑在内,最多允许1650个字符,并防止用户输入更多内容和细节。 但在服务器端,行的末尾被视为CR和CF的两个字符,尽管JS计算了1650,但数据被插入CR和CF,以DB为单位的长度为>;1650比如说1680。 在DB端,该字段是clob,因此即使它存储>;1650年
现在我有了一个编辑屏幕,在那里我必须显示相同的文本区域,并允许用户进行编辑。 对于上面我输入1650但DB显示1680的同一个示例,UI中的textarea显示1680个字符,因此显示剩余字符数的加载范围是-20,因为服务器端包含了CR/CF值
如何处理客户端验证以包含2个字符的CR/CF
# 1 楼答案
考虑以下内容:
使用
keyup
,我们可以返回false来防止击键事件