当前位置:  开发笔记 > 编程语言 > 正文

在HTML textarea上模拟HTML输入"maxlength"属性的最佳方法是什么?

如何解决《在HTMLtextarea上模拟HTML输入"maxlength"属性的最佳方法是什么?》经验,为你挑选了3个好方法。

HTML文本输入具有称为"maxlength"的属性,由浏览器实现,如果设置在一定数量的字符之后阻止用户输入.

另一方面,HTML textarea元素没有此属性.我的目标是模拟HTML textarea上maxlength的行为.要求:

至少,显示(CSS更改)用户键入太多字符.

理想情况下,阻止用户输入更多字符,就像在HTML输入上一样.

据了解,服务器端验证应该再次检查长度.在这里,我只关注客户端部分.

我的问题是:在HTML textarea上模拟maxlength的最干净的客户端方法是什么?理想情况下,指向您使用过的经过验证的开源JavaScript代码.



1> MrChrister..:

查看本网站上的评论,倒计时.我以前这样做过,简单有效.Stack Overflow也很好地利用了颜色.

也许你没有足够的代表来看评论框.

当你输入时,它会运行一些倒计时.当它接近阈值时,颜色从黄色变为红色.全部使用JavaScript,我假设textarea的keyup事件.

编辑:如何用jQuery完成它?



HTML就是




2> gzzzur..:

我在这里发现了一个很好的脚本,它阻止用户在输入字符串的长度超过MaxLen参数后输入更多文本,它具有无可否认的好处,即大部分不在用户面前.

我的问题是它还阻止了导航键(箭头,主页,结尾)以及退格和删除,因此我稍微修改了它,否则用户无法删除他输入的文本,如果他达到了设置的限制MaxLen(这会很有趣:P).

使用Javascript:

function imposeMaxLength(Event, Object, MaxLen)
{
        return (Object.value.length <= MaxLen)||(Event.keyCode == 8 ||Event.keyCode==46||(Event.keyCode>=35&&Event.keyCode<=40))
}

随之而来的HTML:


JS:

function setMaxLength() {
    var x = document.getElementsByTagName('textarea');
    var counter = document.createElement('div');
    counter.className = 'counter';
    for (var i=0;i maxLength)
        this.relatedElement.className = 'toomuch';
    else
        this.relatedElement.className = '';
    this.relatedElement.firstChild.nodeValue = currentLength;
    // not innerHTML
}

只需setMaxLength();在加载时调用该函数.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有