1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > js限制input的输入字符的长度 区分中英文

js限制input的输入字符的长度 区分中英文

时间:2021-12-23 11:01:35

相关推荐

js限制input的输入字符的长度 区分中英文

在一个项目中,需要在input输入框中添加placeholder属性,并且限制输入框的字符长度,最大长度为中文25个,英文50个字符,一般的如果不区分中英文则直接添加maxlength属性,然后赋值最大的长度即可,但并不区分中英文字符的长度,于是想着通过js代码来控制placeholder提示语的显示和隐藏以及输入框输入字符长度的限制,区分中英文。

//jquery控制placeholder提示语的显示和隐藏以及输入框输入字符长度,区分中英文$(document).ready(function () {//通过jquery给input输入框添加placeholder属性$(".table").find("#Remarks").attr('placeholder', '请输入您的内容');//设置placeholder文字的颜色$(".table").find("#Remarks").css("color", "gray")//增加限制输入的字符长度RemarksLength属性,中文最长输入25个中文支付,则长度为50$(".table").find("#Remarks").attr('RemarksLength', '50');// 获得焦点事件,input输入框获得焦点则placeholder内容不显示$(".table").find("#Remarks").focus(function () { $(this).attr('placeholder', ' ');$(".table").find("#Remarks").css("color", "black");});// 失去焦点事件,如果input输入框的内容为空,那就设置之前定义的placeholder的内容$(".table").find("#Remarks").blur(function () { $(this).attr('placeholder', '请输入您的内容'); });//限制输入的字符长度$(".table").find("#Remarks").live("input", function () {//得到RemarksLength属性var maxLength = $(this).attr("RemarksLength"); if(maxLength==""||maxLength==null) {return;}var length = checkLength($(this).val());if(length>maxLength) {//如果输入长度大于限定的最大长度则截取最大长度部分的字符$(this).val(subString($(this).val(),maxLength));}});})//检查输入的长度方法,区分中英文function checkLength(input) {var i, sum; sum = 0; for (i = 0; i < input.length; i++) { //中英文不同的长度检测办法,英文一个字符长度,中文两个支付长度if ((input.charCodeAt(i) >= 0) && (input.charCodeAt(i) <= 255)) { sum = sum + 1; } else { sum = sum + 2; } } return sum;}//处理超过长度的字符,截取maxlength的字符function subString(str,n){ var len=checkLength(str,n);if(len>n){ var newlen=Math.floor(n/2); var stringLength=str.length;var newString = "";for(var i=newlen;i<=stringLength;i++){var tempString = str.substr(0,i);if(checkLength(tempString)>n){return newString;break;}else{newString = tempString;}} }else{ return str; } }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。