JS TextArea字符串长度限制代码集合_Javascript教程-查字典教程网
JS TextArea字符串长度限制代码集合
JS TextArea字符串长度限制代码集合
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下:textAreaLimit("t",{lastMsgLabel:"b2"})functiontextAreaLimit(a...

复制代码 代码如下:

<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教程学习
    编程开发子分类