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

 更新时间:2012年10月31日 15:28:21   作者:  
因为业务需求 今天做了一个textarea文本域字符串长度限制的方法,其实网上已经有了很多相关的解决方案,但在输入日语时,在IE存在BUG,我的这个版本就是针对这种情况的
复制代码 代码如下:

<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 主要是在红线中间的代码。
思路就是中断日语的输入状态。
用如果输入超出时能忍受弹窗的话,就用方案②,否则的话就用方案①。

相关文章

  • JS面向对象之多选框实现

    JS面向对象之多选框实现

    这篇文章主要为大家详细介绍了JS面向对象之多选框实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • JS+CSS实现Li列表隔行换色效果的方法

    JS+CSS实现Li列表隔行换色效果的方法

    这篇文章主要介绍了JS+CSS实现Li列表隔行换色效果的方法,实例分析了js操作li节点的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • 需灵活掌握的Bootstrap预定义排版类 你精通吗?

    需灵活掌握的Bootstrap预定义排版类 你精通吗?

    Bootstrap预定义排版类,做web前端开发的你精通吗?bootstrap前端框架到底为我们预定义了那些排版的类呢?感兴趣的小伙伴们可以参考一下
    2016-06-06
  • JavaScript实现文本目标字符替换和一键全部替换

    JavaScript实现文本目标字符替换和一键全部替换

    这篇文章主要介绍了JavaScript实现文本目标字符替换和一键全部替换,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法

    JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法

    这篇文章主要介绍了JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法,涉及JavaScript页面元素定时滚动操作及ajax调用实现技巧,需要的朋友可以参考下
    2016-04-04
  • 五步轻松实现JavaScript HTML时钟效果

    五步轻松实现JavaScript HTML时钟效果

    这篇文章主要为大家详细介绍了五步轻松实现JavaScript HTML时钟效果的代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • js回到页面指定位置的三种方式

    js回到页面指定位置的三种方式

    这篇文章主要介绍了js回到页面指定位置的三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 跟我学习javascript的循环

    跟我学习javascript的循环

    跟我学习javascript的循环,本文不仅针对javascript循环进行讲解,还对prototype补充了几点小tips,欢迎大家阅读。
    2015-11-11
  • javascript添加前置0(补零)的几种方法

    javascript添加前置0(补零)的几种方法

    很多时候为了显示格式,需要在某一字符串不满位的情况下进行前补0操作。下面这篇文章就给大家主要介绍了javascript添加前置0(补零)的几种方法,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • 解决layui数据表格Date日期格式的回显Object的问题

    解决layui数据表格Date日期格式的回显Object的问题

    今天小编就为大家分享一篇解决layui数据表格Date日期格式的回显Object的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09

最新评论