扫码关注官方订阅号
Html怎样用js限制某input输入框仅允许输入英文或数字呢?(使用onkeydown事件)
小伙看你根骨奇佳,潜力无限,来学PHP伐。
简单点写就是这样
$('input').on('keyup', function(){ this.value = this.value.replace(/[\W|\_]/g,function(){ //alert('请输入字母或数字') return '' }) })
这里非法字符先出现,后被替换为'',会有闪烁的现象,如果想要做的更好点,那就推荐用个p和input叠在一起,让input过滤后的value innerHTML到p中
你得用 keyup 事件,只有 keyup 事件你才能获取到当前输入的字符
keyup
在 keyup 事件处理器中过滤非英文和数字的字符,用正则过滤 [A-Za-z0-9]
[A-Za-z0-9]
不认同@elliott的答案1,keydown, keypress, keyup三个键盘事件最大的不同在于触发顺序。至于它们一些别的键码上的细微区别,一搜一大把。并不是只有keyup才能获取当前输入,而且,也是不能直接获取字符的。
回归到题主的问题,思路其实就是基本的正则过滤,楼上的答案2已经给出。拿到键码,匹配正则。当然粗暴点,你也可以列个keyCode的hash,进行匹配判断。
话说,为什么不用keypress。最起码天然过滤功能键不好么。顺带一提,别忘了PreventDefault哦
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
简单点写就是这样
这里非法字符先出现,后被替换为'',会有闪烁的现象,如果想要做的更好点,那就推荐用个p和input叠在一起,让input过滤后的value innerHTML到p中
你得用
keyup事件,只有keyup事件你才能获取到当前输入的字符在
keyup事件处理器中过滤非英文和数字的字符,用正则过滤[A-Za-z0-9]不认同@elliott的答案1,keydown, keypress, keyup三个键盘事件最大的不同在于触发顺序。至于它们一些别的键码上的细微区别,一搜一大把。并不是只有keyup才能获取当前输入,而且,也是不能直接获取字符的。
回归到题主的问题,思路其实就是基本的正则过滤,楼上的答案2已经给出。拿到键码,匹配正则。当然粗暴点,你也可以列个keyCode的hash,进行匹配判断。
话说,为什么不用keypress。最起码天然过滤功能键不好么。顺带一提,别忘了PreventDefault哦