JS TextArea字符串长度限制代码集合


Posted in Javascript onOctober 31, 2012
<html> 
<body> 
<textarea id="t"></textarea> 
<input type="text" id="b2" /> 
<script type="text/javascript"> 
textAreaLimit("t",{lastMsgLabel:"b2"}) 
function textAreaLimit(area,op){ 
var defaultOp = { 
maxLength:10 //最大长度 
, IsNumber:false //只能是数字 
, lastMsgLabel:null //即时显示可输入个数的Input 
, msg:"还可以输入{0}个文字" 
, errorMsg:"文字个数超出最大限制" 
}; 
var label; 
if(typeof area == "string"){ 
area = document.getElementById(area); 
} 
if(!area){ 
return; 
} 
for(var i in op){ 
defaultOp[i] = op[i]; 
} 
if(defaultOp.lastMsgLabel){ 
if(typeof defaultOp.lastMsgLabel == "string"){ 
label = document.getElementById(defaultOp.lastMsgLabel); 
} 
} 
if(defaultOp.IsNumber){ 
area.style.imeMode="Disabled";//IE 
area.onkeydown = function(){ 
return event.keyCode != 229; 
} 
} 
area.onkeyup = function(){ 
if(defaultOp.IsNumber){ 
this.value = this.value.replace(/\D/g,"");//IE之外的 
} 
if(this.value.length > defaultOp.maxLength){ 
//------------------------------------------------------------------------------- 
//方案① 
this.disabled = "disabled"; 
this.value = this.value.slice(0,defaultOp.maxLength); 
this.removeAttribute("disabled"); 
this.focus(); 
//方案② 
//或 
//alert(defaultOp.errorMsg); 
//this.value = this.value.slice(0,defaultOp.maxLength); 
//------------------------------------------------------------------------------- 
} 
if(label){ 
label.value = defaultOp.msg.replace(/\{0\}/,defaultOp.maxLength -this.value.length); 
} 
} 
} 
</script> 
</body> 
</html>

解决输入日语+全角时出现的BUG 主要是在红线中间的代码。
思路就是中断日语的输入状态。
用如果输入超出时能忍受弹窗的话,就用方案②,否则的话就用方案①。
Javascript 相关文章推荐
Jquery升级新版本后选择器的语法问题
Jun 02 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
Nov 28 Javascript
dreamweaver 安装Jquery智能提示
Apr 02 Javascript
js中的this关键字详解
Sep 25 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
javascript实现依次输入input自动定焦
Dec 23 Javascript
js显示当前日期时间和星期几
Oct 22 Javascript
JavaScript Promise 用法
Jun 14 Javascript
JS实现关闭当前页而不弹出提示框的方法
Jun 22 Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 Javascript
php 修改密码实现代码
May 24 Javascript
Vue路由管理器Vue-router的使用方法详解
Feb 05 Javascript
JS 控件事件小结
Oct 31 #Javascript
jQuery事件 delegate()使用方法介绍
Oct 30 #Javascript
fancybox modal的完美解决(右上的X)
Oct 30 #Javascript
基于jquery自己写tab滑动门(通用版)
Oct 30 #Javascript
基于jquery的滚动条滚动固定div(附演示下载)
Oct 29 #Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 #Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
Oct 29 #Javascript
You might like
农民C键的运用技巧
2020/03/04 星际争霸
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
php事务处理实例详解
2014/07/11 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
jQuery代码优化 事件委托篇
2011/11/01 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
webpack优化的深入理解
2018/12/10 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
elementUI同一页面展示多个Dialog的实现
2020/11/19 Javascript
Python爬取网易云音乐热门评论
2017/03/31 Python
对python中Json与object转化的方法详解
2018/12/31 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
Python常用特殊方法实例总结
2019/03/22 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
python 内置函数汇总详解
2019/09/16 Python
python dumps和loads区别详解
2020/02/04 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
python实现学生信息管理系统源码
2021/02/22 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
学校安全责任书
2014/04/14 职场文书
财务管理专业求职信
2014/06/11 职场文书
2015会计试用期工作总结
2014/12/12 职场文书