Javascript onkeypress文本框问题
我有这个:Javascript onkeypress文本框问题,javascript,jquery,Javascript,Jquery,我有这个: <input type="text" ID="txtMy" name="txtMy" onkeypress="initialize();"/> 但是,如果我的文本框中有'2',然后我输入4,那么x的值仍然是2。如何解决此问题?您在onkeypress中初始化的拼写与声明不匹配(inititalize)。使用keyup 下面是你在工作中是如何做到这一点的 HTML <input type="text" id="txtMy" /> 工作样本: 如果要将功能绑定
<input type="text" ID="txtMy" name="txtMy" onkeypress="initialize();"/>
但是,如果我的文本框中有'2',然后我输入4,那么x的值仍然是2。如何解决此问题?您在onkeypress中初始化的拼写与声明不匹配(
inititalize
)。使用keyup
下面是你在工作中是如何做到这一点的
HTML
<input type="text" id="txtMy" />
工作样本:
如果要将功能绑定到DOM加载后注入DOM的文本框(可能通过Ajax调用等),可以使用jQuery
您可以使用jquery而不是标记事件处理程序:
var x;
$("#txtMy").on("keyup", function(){
x = $(this).val();
alert(x);
})
有几件事:
keyup
事件<代码>按键在录制字符之前触发请参见在输入的键实际出现在文本框中之前,在
keydown
和keypress
处执行的工作JSFIDLE事件。如果要在键出现后获取输入的新值,请改用keyup
事件
<input type="text" ID="txtMy" name="txtMy" onkeyup="initialize();"/>
initialize()
{
var x = $("#txtMy").val();
}
初始化()
{
var x=$(“#txtMy”).val();
}
<>你应该考虑使用JavaScript绑定事件处理程序,因为无论如何你都在使用这个库。保持逻辑(javascript)与视图(html)分离是一个好习惯。使用内联属性来附加事件处理程序是一个坏习惯。如果您使用的是jQuery这样的框架,那么就没有理由这么做,因为它使绑定它们的整个过程变得如此简单。删除了我以前的评论,因为您已经编辑了这个问题,并使它变得无关紧要。
$(function(){
$("body").on("keyup","#txtSearchKey",function (event) {
alert($(this).val())
});
});
var x;
$("#txtMy").on("keyup", function(){
x = $(this).val();
alert(x);
})
<input type="text" ID="txtMy" name="txtMy" onkeyup="initialize();"/>
initialize()
{
var x = $("#txtMy").val();
}