带有CR和CF的javascript textarea maxlength问题
我对最大长度的计算有疑问 Javascript带有CR和CF的javascript textarea maxlength问题,javascript,java,jquery,jsp,textarea,Javascript,Java,Jquery,Jsp,Textarea,我对最大长度的计算有疑问 Javascript function charCount(characters) { document.getElementById('citation').onkeyup = function () { var s = this.value; document.getElementById('sBann').innerHTML = (characters - s.length) + " characters left.&qu
function charCount(characters) {
document.getElementById('citation').onkeyup = function () {
var s = this.value;
document.getElementById('sBann').innerHTML = (characters - s.length) + " characters left.";
};
}
JSP:
剩余字符。
我的文本区域的最大长度为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值
如何处理客户端验证以包含CR/CF的2个字符?考虑以下几点
$(函数(){
功能特性英尺(el){
var max=parseInt($(el).attr(“maxLength”);
var cur=$(el).val().length;
返回最大电流;
}
函数allowType(el){
var结果=真;
如果(字符)ft(el)考虑以下因素
$(函数(){
功能特性英尺(el){
var max=parseInt($(el).attr(“maxLength”);
var cur=$(el).val().length;
返回最大电流;
}
函数allowType(el){
var结果=真;
如果(charactersLeft(el)它的回车CR
和换行LF
。在Windows上,如果你console.log()
textarea值,它将不返回CR或\r
它只返回\n
,在mac os上我不确定
您有重复的事件
onKeyUp="charCount(<%=maxCitationLength%>);"
// and
document.getElementById('citation').onkeyup = function () {
剩余20个字符。
它的回车CR
和换行LF
。在Windows上,如果您console.log()
textarea值,它将不会返回CR或\r
它只返回\n
,在mac os上我不确定
您有重复的事件
onKeyUp="charCount(<%=maxCitationLength%>);"
// and
document.getElementById('citation').onkeyup = function () {
剩余20个字符。
非常感谢您的回复。您能解释一下您想在这里做什么吗?@JNPW我正在努力解决您的问题。在Windows中,行尾(EOL)由回车(CR)和新行(NL)表示,但在Linux中这只是新行(NL)。无论哪种方式,它都只能是1个字符。如果它是2个字符,您可以从每行中删除CR。非常感谢您的回复。您能解释一下您在这里想做什么吗?@JNPW我正在努力解决您的问题。在Windows中,行尾(EOL)由回车(CR)和新行(NL)表示,但在Linux中,这只是新行(NL)。无论哪种方式,它都应该只有1个字符。如果它是2个字符,则可以从每行中删除CR。