JS限制输入的字数

      经常会碰到在输入的时候需要限制输入的字数(长度),如果用maxlength属性的话它对待中英文是一样的。比如<input name="textfield" type="text" size="10" maxlength="10">这样可以输入十个字母比如1234567890,但是也可以输入十个汉字比如:一二三四五六七八九十,但是明显后面那十个汉字是char(20),如果数据库中字段的属性是char(10),那么多余的就会截掉甚至导致最后一个字符出现乱码。
     于是我就曾经用JS来提示和控制输入字符的长度,代码如下:
     一、建立js文件(checkWord.js):

function checkWord(len){
var src=window.event.srcElement;
var str=trim(src.value);
myLen=0;
i=0;
for(;(i<str.length)&&(myLen<=len);i++){
if(str.charCodeAt(i)>0&&str.charCodeAt(i)<128)
myLen++;
else
myLen+=2;
}
//var myLen=str.replace(/[^/x00-/xff]/g,"**").length;
var mydiv=document.getElementById("wordCheck");
if(myLen>len){
alert("/u60a8/u8f93/u5165/u7684/u5b57/u6570/u8fc7/u591a/uff0c/u8bf7/u91cd/u65b0/u8f93/u5165");
src.value=str.substring(0,i-1);
window.frames.wordFrame.document.write("<body style='margin-bottom:0px; margin-left:5px; margin-right:0px; margin-top:6px;'> <span style='font-family:??, Verdana, Lucida, Arial, Helvetica,sans-serif;font-size:14px;color:#036;'>/u60a8/u8fd8/u53ef/u4ee5/u8f93/u51650/u4e2a/u5b57/u7b26</span></body>");
window.frames.wordFrame.document.close();
}
else{
window.frames.wordFrame.document.write("<body style='margin-bottom:0px; margin-left:5px; margin-right:0px; margin-top:6px;'> <span style='font-family:/u5b8b/u4f53, Verdana, Lucida, Arial, Helvetica,sans-serif;font-size:14px;color:#036;'>/u60a8/u8fd8/u53ef/u4ee5/u8f93/u5165"+(len-myLen)+"/u4e2a/u5b57/u7b26</span></body>");
window.frames.wordFrame.document.close();
}
mydiv.style.visibility="visible";
var myx=0,myy=0;
var parent = src.offsetParent
while(parent){
myx += parent.offsetLeft;
myy += parent.offsetTop;
parent=parent.offsetParent;
}
mydiv.style.left=myx+5;
mydiv.style.top=myy-25;
}

function hiddWordDiv(){
document.getElementById("wordCheck").style.visibility="hidden";
}

      二、在页面上加入:
     <script type="text/javascript" src="checkWord.js"></script>
     ……
     <div style="position:absolute; width:155px;height=28px;z-index:100;border:#4298E1 solid 1px; background-color:#fff; visibility:hidden; FILTER: Alpha(opacity=85)" id="wordCheck">
     <iframe name="wordFrame" frameborder="0" id="wordFrame" style="width:155px; height:28px;z-index:101;" scrolling="no">
     </iframe>
     </div>
     注意:这里用到iframe是因为页面的控件比如下拉列表会浮在层的上面,就算设置z-index也无效。
    三、在需要用text中加入代码:
     <input type="text" size="70" maxlength="80" name="giftDescribe" οnkeyup="javascript:checkWord(80)" οnblur="javascript:hiddWordDiv()">
   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值