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 相关文章推荐
javascript 匿名函数的理解(透彻版)
Jan 28 Javascript
jQuery实现加入购物车飞入动画效果
Mar 14 Javascript
javascript返回顶部的按钮实现方法
Jan 09 Javascript
JavaScript注册时密码强度校验代码
Jun 30 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
Sep 18 Javascript
分析JS单线程异步io回调的特性
Dec 01 Javascript
webpack 打包压缩js和css的方法示例
Mar 20 Javascript
vue请求服务器数据后绑定不上的解决方法
Oct 30 Javascript
微信小程序swiper使用网络图片不显示问题解决
Dec 13 Javascript
vue项目实现多语言切换的思路
Sep 17 Javascript
ant design 日期格式化的实现
Oct 27 Javascript
javascript实现左右缓动动画函数
Nov 25 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
php采集速度探究总结(原创)
2008/04/18 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
关闭时刷新父窗口两种方法
2014/05/07 Javascript
Javascript学习指南
2014/12/01 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
Bootstrap栅格系统的使用详解
2017/10/30 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
python操作xml文件详细介绍
2014/06/09 Python
python中实现定制类的特殊方法总结
2014/09/28 Python
python实现查询苹果手机维修进度
2015/03/16 Python
python获取本机外网ip的方法
2015/04/15 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
Python base64编码解码实例
2015/06/21 Python
python删除特定文件的方法
2015/07/30 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
Python中的Cookie模块如何使用
2020/06/04 Python
python的launcher用法知识点总结
2020/08/07 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
2014年巴西世界杯口号
2014/06/05 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书