国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

限制字符輸入數功能(jquery版和原生JS版)

2019-11-21 00:15:10
字體:
來源:轉載
供稿:網友
已知BUG:
Ubuntu系統下, onkeyup事件失效,詳見: Ubuntu系統下onkeyup/onkeydown對中文輸入失效bug.
查看演示: 點此查看DEMO
核心代碼:
復制代碼 代碼如下:

//原生JavaScript版本
window.onload=function(){
var js=document.getElementById('js');//獲取文本域
var info=document.getElementsByTagName('p')[0];//獲取要插入提示信息的元素
var submit=info.getElementsByTagName('input')[0];//獲取提交按鈕
var max=js.getAttribute('maxlength');//獲取限制輸入的最大長度
var tips=document.createElement('span');//新建一個提示span
var val,cur,count,warn;
submit.disabled=true;//默認不可提交
tips.innerHTML='你還可以輸入<em>'+max+'</em>個字符<font>[不區分中英文字符數]</font>';
if(max){
js.onkeyup=js.onchange=function(){
submit.disabled=false;
if(info.lastChild.nodeName!='SPAN') info.appendChild(tips);//避免每次彈起都會插入一條提示信息
count=info.getElementsByTagName('em')[0];//根據輸入數字變換區
warn=info.getElementsByTagName('font')[0];//副標題
val=this.value;
cur=val.length;
// for(var i=0;i<val.length; i++){//此循環是用來判斷中英文字符的,但并不建議那樣做
// if(val.charCodeAt(i)>255) cur+=1;
// }
if(cur==0){ //當默認值長度為0時,可輸入數為默認maxlength值,此時不可提交
count.innerHTML = max;
submit.disabled=true;
warn.innerHTML='不區分中英文字符數';
}else if (cur < max) {//當默認值小于限制數時,可輸入數為max-cur
count.innerHTML = max - cur;
warn.innerHTML='不區分中英文字符數';
}else{
count.innerHTML = 0;//當默認值大于等于限制數時,插入一條提示信息并截取限制數內的值
warn.innerHTML='不可再輸入!';
this.value=val.substring(0,max);//此處前面的this.value不能用變量val,它們不再是同一個值
}
}
}
}
//基于jQuery版本
$(function(){
var _area=$('textarea#jq');
var _info=_area.next();
var _submit=_info.find(':submit');
var _max=_area.attr('maxlength');
var _val,_cur,_count,_warn;
_submit.attr('disabled',true);
_area.bind('keyup change',function(){ //綁定keyup和change事件
_submit.attr('disabled',false);
if(_info.find('span').size()<1){//避免每次彈起都會插入一條提示信息
_info.append('<span>你還可以輸入<em>'+ _max +'</em>個字符<font>[不區分中英文字符數]</font></span>');
}
_val=$(this).val();
_cur=_val.length;
_count=_info.find('em');
_warn=_info.find('font');

if(_cur==0){//當默認值長度為0時,可輸入數為默認maxlength值,此時不可提交
_count.text(_max);
_submit.attr('disabled',true);
}else if(_cur<_max){//當默認值小于限制數時,可輸入數為max-cur
_count.text(_max-_cur);
_warn.text('不區分中英文字符數');
}else{//當默認值大于等于限制數時,插入一條提示信息并截取限制數內的值
_count.text(0);
_warn.text('不可再輸入!');
$(this).val(_val.substring(0,_max));
}
});
});

在線測試代碼:

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 望奎县| 浙江省| 洪湖市| 商城县| 梁平县| 丽江市| 新巴尔虎右旗| 马山县| 静宁县| 合阳县| 仁化县| 寿宁县| 巴彦淖尔市| 抚宁县| 永福县| 阿克苏市| 栾城县| 滕州市| 乌恰县| 祁门县| 腾冲县| 锦屏县| 通海县| 周至县| 宽甸| 永康市| 丰台区| 噶尔县| 宜春市| 蕉岭县| 景宁| 伊川县| 铜陵市| 和顺县| 神农架林区| 集贤县| 柳河县| 临夏县| 陕西省| 大化| 常宁市|