jsfiddle:http: //jsfiddle.net/ztNHL/3/
选择顶部的输入,然后跳到第二个。它会将光标放在值的末尾,而不是全选。如果您删除 javascript 并再次运行,您会看到此行为不会发生。
毫无头绪。
jsfiddle:http: //jsfiddle.net/ztNHL/3/
选择顶部的输入,然后跳到第二个。它会将光标放在值的末尾,而不是全选。如果您删除 javascript 并再次运行,您会看到此行为不会发生。
毫无头绪。
没有什么奇怪的。keyup
事件对TAB您的代码做出反应并执行
this.value = this.value.replace(/[^0-9\.]/g, "");
女巫更新输入字段的值。这就是为什么它首先选择该字段,然后删除选择。
$(function() {
$('.numbersOnly').keyup(function (evt) {
if ($.inArray(evt.which, [37, 38, 39, 40]) != -1) return false;
this.value = this.value.replace(/[^\d\.]/g,'');
if (evt.which == 9) this.select(); //<-- re-select field value
});
});
我做了一些其他的修改:
\d
别名)嗨,还有其他一些问题,例如:
工作演示顺利:http: //jsfiddle.net/wWxVL/2/
这里有一篇很棒的帖子:如何使用 jQuery 在 HTML 输入框中只允许数字 (0-9)?
希望有帮助,加油
代码
$(document).ready(function() {
$(".numbersOnly").keydown(function(event) {
// Allow: backspace, delete, tab, escape, and enter
if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
// Allow: Ctrl+A
(event.keyCode == 65 && event.ctrlKey === true) ||
// Allow: home, end, left, right
(event.keyCode >= 35 && event.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
else {
// Ensure that it is a number and stop the keypress
if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
event.preventDefault();
}
}
});
});
当我(在 chrome 中)标签到第二个框时,它不会到达值的末尾,直到我放开标签键(即在 keyup 上)
this.value = this.value.replace(/[^0-9\.]/g,'');
当您放开 tab 键时正在执行