我有一个文本框,我想在每次输入内容时使用其中的数据;一封信。
当输入一个值时,Javascript正在执行之前该值实际被放入文本框中,这意味着它总是落后于一个字符。
$(document).ready(
function() {
$('#test').keypress(
function() {
var value = document.getElementById('test').value;
alert(value);
});
})
<input id="test" type="text" />
以下是发生的事情:
input alert
w ""
e "w"
a "we"
l "wea"
t "weal"
h "wealt"
而我希望它动态发生;即当我输入“w”时,我希望警报立即包含“w”。
答案 0 :(得分:16)
keypress
在变更之前发生,是的。 keyup
之后发生。请改为倾听。
答案 1 :(得分:4)
您应该尝试keyup
事件,因为keypress
在文本框中输入符号之前发生
答案 2 :(得分:4)
使用keyup
$(document).ready(
function() {
$('#test').keyup(
function() {
var value = document.getElementById('test').value;
alert(value);
});
})
答案 3 :(得分:2)
使用keyup
在输入内容后读取有效内容。以下是使用jQuery的方法:
$(document).ready(function() {
$('#test').keyup(function() {
alert($(this).val());
});
});
答案 4 :(得分:0)
使用keyup事件代替 - :
$('#test').keyup(
function() {
var value = document.getElementById('test').value;
alert(value);
});
答案 5 :(得分:0)
请改用keyup
,看一下:
答案 6 :(得分:0)
使用keyup代替 这将起作用
$(document).ready(
function() {
$('#test').keyup(
function() {
var value = document.getElementById('test').value;
alert(value);
});
})
答案 7 :(得分:0)
尝试使用'keyup'事件而不是'keypress'。
更改为:
$(document).ready(
function() {
$('#test').keyup(
function() {
var value = document.getElementById('test').value;
alert(value);
});
});
工作plunk。