防止javascript中的默认onkeyup事件
prevent default onkeyup event in javascript
逻辑上防止默认值在键上不起作用。但我必须取得这样的成就。。。
我必须制作一个文本字段,就像当用户输入值时,它必须检查它是3位数字,并且应该允许最大2分精度(例如:123.99,24,56)。所以我想读取值并调用JavaScript函数,如果它不合适,就必须阻止它。
如果我使用向下键,我就无法跟踪值,就像用户可能会在数字中间放置一个字符一样。那么,有什么方法可以实现这一点吗。。。
这是有效的:
var elt = document.getElementById('test');
function saveLastInput(e) {
e.target.setAttribute('last-input', elt.value);
}
function forbidNonNumbers(e) {
var elt = e.target,
newValue = elt.value,
lastInput,
newValueIsForbidden = false;
if (newValue !== '' && !/^[0-9]{1,3}('.[0-9]{0,2})?$/.test("" + newValue)) {
newValueIsForbidden = true;
}
if (newValueIsForbidden) {
lastInput = elt.getAttribute('last-input');
elt.value = lastInput;
}
}
elt.addEventListener(elt.oninput ? 'input' : 'keyup', forbidNonNumbers);
elt.addEventListener(elt.oninput ? 'input' : 'keyup', saveLastInput); // Insert this line last!
Chrome、FF、IE 11 测试
此处演示:http://jsfiddle.net/hc5fyLyz/1/
相关文章:
- 在onkeyup事件中未检测到文本区域更改
- HTML onkeyup事件属性来运行PHP函数
- onKeyUp 事件计算不适用于 PHP 生成的表单中的以下行,除了第一行
- 防止javascript中的默认onkeyup事件
- JQuery警报不适用于onkeyup事件
- Javascript 文本框 onkeyup 事件
- 如何检测哪个 React 组件触发了 onKeyUp 事件
- 修改 onkeyup 事件以忽略 Tab 键按下
- 来自快速输入的 AJAX OnKeyUp 事件 501
- 在表单元素上创建 onkeyup 事件,而无需实际进行键控
- onKeyUp事件(无效)
- Javascript用字符串替换onKeyUp事件
- 如何在一个html标记上调用多个onkeyup事件
- 通过onkeyup事件Jquery进行文本框验证,而不使用警报
- 文本区域中的onkeyup事件
- 如何禁止输入按钮触发onkeyup事件
- 我的基于web的javascript游戏对onkeyup事件不是很敏感.我如何使程序检测所有的击键,而不仅仅是其中的一些
- 使用onkeyup事件在输入表单的文本两侧添加方括号
- 我想在文本框旁边显示错误信息,而不是在onkeyup事件中发出警报
- onkeydown和onkeyup事件在Internet Explorer 8上不起作用