js 文本框 (input)禁止输入
2019-01-14 本文已影响0人
ThisWu
先简单说明下键盘事件:
keydown事件
按下键盘上的任意键触发;按住不放,重复触发。
keypress事件
按下键盘上的字符键触发;按住不放,重复触发。
按下Esc键也会触发这个事件。
keyup事件
释放键盘上的键时触发。
触发顺序
(1)当按下键盘上的一个字符键时,首先触发keydown事件,然后紧跟着keypress事件,最后会触发keyup事件。其中,keydown和keypress事件是在文本框发生变化之前触发;而keyup事件则是在文本框发生变化之后触发的。
(2)当按下键盘上的一个非字符键,那么首先触发keydown事件, 然后是keyup事件。
JS 控制不能输入特殊字符
<input type="text"class="domain"onkeyup="this.value=this.value.replace(/[^u4e00-u9fa5w]/g,'')" />
JS 控制文本框只能输入数字
<input onkeyup="value=value.replace(/[^0-9]/g,'')" onpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu = "value=value.replace(/[^0-9]/g,'')">
JS 控制文本框只能输入数字、小数点
<input onkeyup="value=value.replace(/[^\0-9\.]/g,'')" onpaste="value=value.replace(/[^\0-9\.]/g,'')" oncontextmenu = "value=value.replace(/[^\0-9\.]/g,'')">
JS 控制文本框只能输入英文
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z]/g,'')">
JS 控制文本框只能输入英文、数字
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')">
JS 控制文本框只能输入中文
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onpaste="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^\u4E00-\u9FA5]/g,'')">
JS 控制文本框只能输入中文、英文、数字
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')">
JS 控制文本框只能输入中文、英文、数字、空格
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\ ]/g,'')">
JS 控制文本框只能输入中文、英文、数字、小数点
<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.]/g,'')">
如果只要对单个或者两三个禁止输入比如(1)【】或者(2),。
(1)<input onkeyup="this.value=this.value.replace(/[【】]/g,'')" />
(2)<input onkeyup="this.value=this.value.replace(/[,。]/g,'')" />
以上代码是根据网上查找的资料与自己的部分心得记录。不喜勿喷。