赞
踩
如果只是单纯地想限制 textarea 中的字數,可用:
<textarea οnkeyup="this.value = this.value.slice(0, 10)"></textarea>
或
<textarea οnkeyup="this.value = this.value.substring(0, 10)"></textarea>
也可以这样子:
首先在textarea 上定义一个 maxlength 属性:
<textarea rows="2" cols="20" maxlength="10" οnkeydοwn="checklength(this);"></textarea>
然后添加这个方法就行了!
function checklength(obj) {
var max = obj.maxlength;
if(max == null || max == "" || max == undefined) {
return;
}
if(obj.value.length > max) {
alert("请不要超过最大长度:" + max);
obj.value=obj.value.substring(0,(max-1));
return;
}
}
还可以这样子:
在textarea中输入内容后就判断是否超出了maxLength,如果超出就按照maxLength截取textare的值,如果用鼠标来拷贝粘贴就没法调用判断maxLength的方法,解决办法就是当textarea获取焦点时把鼠标右键失效,失去焦点时再恢复鼠标右键
这个方法从功能上解决了textarea的maxLength问题,但还不是很完美,在输入超过maxLength的字符后光标会有闪烁,因为是截取回填,没有像input的maxLength那样真正不让输入
<script type="text/javascript">
var textarea_maxlen = {
isMax : function (){
var textarea = document.getElementById("area");
var max_length = textarea.maxLength;
if(textarea.value.length > max_length){
textarea.value = textarea.value.substring(0, max_length);
}
},
disabledRightMouse : function (){
document.oncontextmenu = function (){ return false; }
},
enabledRightMouse : function (){
document.oncontextmenu = null;
}
};
</script>
<textarea id="area" maxLength="10" οnkeyup="textarea_maxlen.isMax()"
οnfοcus="textarea_maxlen.disabledRightMouse()" οnblur="textarea_maxlen.enabledRightMouse()">
</textarea>
还是第一种方法方便有效
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。