我已经将输入字段限制为仅通过js的数字,但我不确定如何也允许小数...
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
先感谢您!
回答:
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46)
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
添加charCode 46完美地工作(按键值).190和110什么也没做.
谢谢你的帮助!
代码取决于您正在收听的事件,通过在此处使用带有测试输入的JavaScript事件KeyCode测试页面,您可以轻松找到所需内容,例如,您可以获得完整停止(右移的左侧).
onKeyDown onKeyPress onKeyUp
event.keyCode 190 46 190
event.charCode 0 46 0
event.which 190 46 190
Run Code Online (Sandbox Code Playgroud)
而对于.数字键盘它是
onKeyDown onKeyPress onKeyUp
event.keyCode 110 46 110
event.charCode 0 46 0
event.which 110 46 110
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,使用charCode检查onKeyPress是最统一的,这是它的unicode号码; .String.fromCharCode(46); // "."
有一个在名单中MDN页面进行的KeyboardEvent在那里还指出
注意:Web开发人员不应在keydown和keyup事件处理程序中使用可打印键的keycode属性.如上所述,键码不可用于检查将被输入的字符,特别是当按下Shift键或AltGr键时.当Web开发人员实现快捷键处理程序时,keypress事件至少是Gecko上用于此目的的更好事件.有关详细信息,请参阅Gecko Keypress事件.
您可以在我链接到的测试页面中观察使用AltCr或Shift on keyCode与选择键的奇怪效果.
| 归档时间: |
|
| 查看次数: |
32235 次 |
| 最近记录: |