`
zhouyrt
  • 浏览: 1159189 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用keydown事件阻止用户输入

 
阅读更多

先了解下各事件的区别

  • keydown:在控件有焦点的情况下按下键时发生
  • keypress:在控件有焦点的情况下按下键时发生
  • keyup:   在控件有焦点的情况下释放键时发生

意义

  1. keypress主要用来接收字母、数字等ANSI字符。keydown 和 keyup 事件过程通常可以捕获键盘除了PrScrn所有按键 (这里不讨论特殊键盘的特殊键)
  2. keypress 只能捕获单个字符,keydown 和 keyup 可以捕获组合键
  3. keypress 不显示键盘的物理状态(SHIFT键),而只是传递一个字符。keypress 将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。
  4. keydown 和 keyup 不能判断键值字母的大小,用两种参数解释每个字符的大写形式和小写形式:keycode — 显示物理的键(将 A 和 a 作为同一个键返回)和 shift —指示 shift + key 键的状态而且返回 A 或 a 其中之一
  5. keypress 不区分小键盘和主键盘的数字字符,keydown 和 keyup 区分小键盘和主键盘的数字字符
  6. keydown、keyup事件是当按下 ( keydown ) 或松开 ( keyup ) 一个键时发生的。由于一般按下键盘的键往往会立即放开(这和鼠标不同),所以这两个事件使用哪个差别不大。而且,up和其他两者还有一个区别:要判断key修改后的状态必须用up

 

我们可以利用keydown事件来阻止用户的输入,比如某输入域只能输入数字

键盘上数字键的keyCode

  • [48-57]  数字键
  • [96-105] 数字小键盘
  • 此外允许Backspace键删除

代码如下

var input = document.getElementById('number_ipt')
input.onkeydown = function(e) {
    var keyCode = e.keyCode
    if ( !isNumber(keyCode) ) return false           
}
 
// 仅能输入数字
function isNumber(keyCode) {
    // 数字
    if (keyCode >= 48 && keyCode <= 57 ) return true
    // 小数字键盘
    if (keyCode >= 96 && keyCode <= 105) return true
    // Backspace键
    if (keyCode == 8) return true
    return false
}

 

 

示例:

https://github.com/snandy/e.js/blob/master/test/stop.html

 

分享到:
评论

相关推荐

    利用Keydown事件阻止用户输入实现代码

    先了解下各事件的区别 KeyDown:在控件有焦点的情况下按下键时发生 KeyPress:在控件有焦点的情况下按下键时发生 KeyUp: 在控件有焦点的情况下释放键时发生 1、KeyPress主要用来接收字母、数字等ANSI字符。KeyDown ...

    限制TextBox只能输入整数或者小数

    通过结合使用`KeyDown`和`TextChanged`事件,以及正则表达式的辅助,可以在Silverlight应用中有效地限制`TextBox`控件的输入,确保用户只能输入整数或小数,从而提高了数据的准确性和应用程序的健壮性。这种方法不仅...

    vb.net文本框里只能输入数字

    否则,阻止输入并取消该事件,防止非数字字符出现在文本框中。 另外,如果你希望在用户输入非数字字符时显示提示信息,可以添加一个消息框提示: ```vbnet Else MessageBox.Show("只能输入数字,请重新输入。", ...

    完整版编辑框限制输入特定文本例程.e.rar

    例如,在React中,可以创建一个自定义的输入组件,利用`state`来管理输入值,并在`onChange`事件中进行合法性检查。 5. **自定义控件** 对于更复杂的需求,可能需要创建自定义的编辑框控件,这样可以完全控制输入...

    文本框的输入限制

    例如,可以使用正则表达式测试输入内容,如果不符合规则,则阻止输入或显示错误信息。 对于服务器端,如使用Java、Python或.NET等框架,我们同样可以在表单提交后验证输入。在后端验证可以防止恶意用户绕过前端限制...

    flex事件讲解

    3. **用户交互事件**:这些事件与用户的输入和操作有关,如MouseDown、MouseUp、Click、KeyDown和KeyUp等。 4. **组件特定事件**:特定于某个组件的事件,比如List的ItemClick或Accordion的Change事件。 在Flex中...

    VB 按下键盘时触发的KeyPress事件

    1. **字符过滤**:如果你想要限制用户输入特定的字符集,例如数字、字母或者特定符号,你可以检查`KeyAscii`的值并根据需要允许或阻止输入。例如,如果你想让TextBox只接受数字,你可以这样写: ```vb Private ...

    对ComboBox的输入进行检查源码

    1. **事件处理**:VB中,我们可以利用ComboBox的事件,如TextChanged、KeyDown或Validating事件,来实时监控用户的输入。当用户在文本框中输入字符时,触发相应的事件,然后执行检查逻辑。 2. **正则表达式**:如果...

    事件集合js事件集合js事件集合

    JavaScript(简称JS)是Web开发中的重要脚本语言,它主要用于网页和浏览器交互,处理用户输入、动画效果、异步通信等。"事件集合"在JS中是指一系列与用户交互或浏览器行为相关的事件,比如点击、鼠标移动、页面加载...

    js限制DIV输入回车

    标题"js限制DIV输入回车"所涉及的知识点,就是如何使用JavaScript来阻止或改变`div`内的回车事件默认行为。在描述中提到,可以更改回车的功能,比如将回车键映射为输入特定的文字,如“你好我好大家好”。 首先,...

    jquery表单事件

    2. 表单验证:利用`change`事件可以在用户更改表单字段时实时验证输入。 ```javascript $('input[type="text"]').change(function() { var value = $(this).val(); if (value.length ) { alert('请输入至少5个...

    VB编程中窗体事件该的讲解.rar

    8. KeyDown和KeyUp事件:与键盘交互相关的事件,KeyDown发生在用户按下键时,KeyUp则在释放键时。可以用来处理特殊键输入,比如快捷键。 9. Paint事件:当窗体需要重绘自身时,Paint事件发生。通常用于自定义绘图,...

    基于vue、iview实现可输入零件号、银行卡号等等

    然后,在Vue实例中,我们需要定义`handleInput`方法来处理输入事件,检查输入的长度,并在达到预设限制时阻止进一步输入: ```javascript data() { return { inputValue: '', maxLength: 16, // 银行卡号通常为...

    KeyCode表【限制文本输入】

    对于工具开发,比如构建自定义输入控件或者编辑器,理解并利用这些机制可以提供更好的用户体验。例如,你可以创建一个自定义的输入组件,它不仅可以限制输入类型,还可以添加格式化功能,如自动填充千位分隔符,或者...

    JS控制input_输入字符限制

    `keydown`和`keyup`事件常用来监听用户在输入框中的按键操作。例如,通过检查`event.keyCode`可以识别用户按下的是哪个键。当`keyCode`等于13时,代表用户按下了回车键(ENTER)。如果不想让用户通过回车键移动到下...

    textbox只能输入数字

    如果是在JavaScript环境中,可以监听`keydown`、`keyup`或`input`事件,通过检查事件对象的`event.key`或修改`event.target.value`来实现数字输入的限制。以下是一个简单的例子: ```javascript document....

    Source-Silverlight-2b1-Keyboard-SRC.zip

    `KeyDown`事件在用户按下键盘上的键时触发,`KeyUp`事件则在用户释放键时触发,而`KeyPress`事件则用于处理字符输入,它通常只对可打印字符有效。 在源码中,我们可能会看到如何注册和处理这些键盘事件的示例。例如...

Global site tag (gtag.js) - Google Analytics