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初学:find()方法及children方法的区别分析
Jan 31 Javascript
jquery+css3打造一款ajax分页插件(自写)
Jun 18 Javascript
jquery text()方法取标签中的文本
Jul 25 Javascript
jQuery实现表格行上下移动和置顶效果
Jun 05 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
Aug 11 Javascript
浅析Bootstrap表格的使用
Jun 23 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
javascript判断回文数详解及实现代码
Feb 03 Javascript
BootStrap 页签切换失效的解决方法
Aug 17 Javascript
vue+moment实现倒计时效果
Aug 26 Javascript
原生JavaScript实现五子棋游戏
Nov 09 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把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
2015/09/18 Javascript
JavaScript操作class和style样式代码详解
2016/02/13 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
回顾Javascript React基础
2019/06/15 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
PYTHON压平嵌套列表的简单实现
2016/06/08 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
python 深度学习中的4种激活函数
2020/09/18 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
日语专业毕业生自荐信
2013/11/11 职场文书
企业统计员岗位职责
2013/12/13 职场文书
个人年终总结结尾
2015/03/06 职场文书
2015年质检工作总结
2015/05/04 职场文书
道士塔读书笔记
2015/06/30 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android