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.fn自定义jQuery翻页插件
Jan 20 Javascript
JS中获取数据库中的值的方法
Jul 14 Javascript
from表单多个按钮提交用onclick跳转不同action
Apr 24 Javascript
javascript 实现 原路返回
Jan 21 Javascript
详解AngularJS的通信机制
Jun 18 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
Jun 26 Javascript
javascript实现数字倒计时特效
Mar 30 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
Aug 29 Javascript
详解vue-router 路由元信息
Sep 13 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
Jul 19 Javascript
uni-app 支持多端第三方地图定位的方法
Jan 03 Javascript
vue 自定义组件添加原生事件
Apr 21 Vue.js
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
AM/FM收音机的安装与调试
2021/03/02 无线电
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
浅谈vue加载优化策略
2019/03/19 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
Python translator使用实例
2008/09/06 Python
Python实现注册、登录小程序功能
2018/09/21 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
合唱兴趣小组活动总结
2014/07/10 职场文书
会计实训报告范文
2014/11/04 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
教师教育心得体会
2016/01/19 职场文书
PHP判断是否是json字符串
2021/04/01 PHP
pytorch显存一直变大的解决方案
2021/04/08 Python
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
Django rest framework如何自定义用户表
2021/06/09 Python
什么是Python装饰器?如何定义和使用?
2022/04/11 Python