在 keydown 上获取输入值并将其设置为其他输入
get input value on keydown and set it to other input
我有一个输入元素,想确保只允许输入数值。我找到了一个工作示例 here.
现在我想获取该字段的值并将其写入另一个输入元素:
$(".firstinput").keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A, Command+A
(e.keyCode == 65 && ( e.ctrlKey === true || e.metaKey === true ) ) ||
// Allow: home, end, left, right, down, up
(e.keyCode >= 35 && e.keyCode <= 40)) {
var $this = $(this).val();
$("copiedinput").val($this);
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
这几乎可以工作,但我只在按回车键或退格键后才得到值。输入“222”和退格键会导致 .firstinput 为“22”,.copiedinput 为“222”。我怎样才能得到实时值?
试试这个:
$(".firstinput").keyup(function() {
$(".firstinput,.copiedinput").val($(this).val().replace(/[^\/\d]/g, ""));
});
或处理按键:
$(".firstinput").keydown(function(e) {
return (
$.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
(e.keyCode == 65 && (e.ctrlKey === true || e.metaKey === true)) ||
(e.keyCode >= 35 && e.keyCode <= 40) ||
(e.keyCode >= 96 && e.keyCode <= 105) ||
(!e.shiftKey && e.keyCode >= 48 && e.keyCode <= 57)
);
}).keyup(function() {
$(".copiedinput").val($(this).val());
});
我有一个输入元素,想确保只允许输入数值。我找到了一个工作示例 here.
现在我想获取该字段的值并将其写入另一个输入元素:
$(".firstinput").keydown(function (e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A, Command+A
(e.keyCode == 65 && ( e.ctrlKey === true || e.metaKey === true ) ) ||
// Allow: home, end, left, right, down, up
(e.keyCode >= 35 && e.keyCode <= 40)) {
var $this = $(this).val();
$("copiedinput").val($this);
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
});
这几乎可以工作,但我只在按回车键或退格键后才得到值。输入“222”和退格键会导致 .firstinput 为“22”,.copiedinput 为“222”。我怎样才能得到实时值?
试试这个:
$(".firstinput").keyup(function() {
$(".firstinput,.copiedinput").val($(this).val().replace(/[^\/\d]/g, ""));
});
或处理按键:
$(".firstinput").keydown(function(e) {
return (
$.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
(e.keyCode == 65 && (e.ctrlKey === true || e.metaKey === true)) ||
(e.keyCode >= 35 && e.keyCode <= 40) ||
(e.keyCode >= 96 && e.keyCode <= 105) ||
(!e.shiftKey && e.keyCode >= 48 && e.keyCode <= 57)
);
}).keyup(function() {
$(".copiedinput").val($(this).val());
});