我有这个:
<input type="text" ID="txtMy" name="txtMy" onkeypress="initialize();"/>
在我的 .js 文件中,我有:
initialize()
{
var x = $("#txtMy").val();
}
但是,如果我的文本框中有 '2',然后我输入 4,x 的值仍然是 2。如何解决这个问题?
我有这个:
<input type="text" ID="txtMy" name="txtMy" onkeypress="initialize();"/>
在我的 .js 文件中,我有:
initialize()
{
var x = $("#txtMy").val();
}
但是,如果我的文本框中有 '2',然后我输入 4,x 的值仍然是 2。如何解决这个问题?
您在 onkeypress 中的 initialize 拼写与声明 ( ) 不匹配inititalize
。
采用keyup
以下是您如何以不显眼的方式做到这一点。
HTML
<input type="text" id="txtMy" />
脚本
$(function(){
$("#txtMy").keyup(function (event) {
alert($(this).val())
});
});
工作示例:http: //jsfiddle.net/VmELF/4/
如果您想将功能绑定到在 dom 加载后注入到 DOM 的文本框(可能通过 Ajax 调用等...),您可以使用 jQuery on
$(function(){
$("body").on("keyup","#txtSearchKey",function (event) {
alert($(this).val())
});
});
keydown
和keypress
事件都在输入的键实际出现在文本框中之前执行。如果要在键出现后获取输入的新值,请改用keyup
事件。
<input type="text" ID="txtMy" name="txtMy" onkeyup="initialize();"/>
initialize()
{
var x = $("#txtMy").val();
}
您应该考虑使用.on()在 javascript 中绑定事件处理程序,因为无论如何您都在使用该库。将逻辑(javascript)与视图(html)分开是一个好习惯。
您可以使用 jquery 而不是标记事件处理程序:
var x;
$("#txtMy").on("keyup", function(){
x = $(this).val();
alert(x);
})
一些东西:
keyup
事件。keypress
在记录角色之前开火。请参阅http://jsfiddle.net/8XTLW/1/上的工作 jsfiddle