我有这个:
<input type="text" ID="txtMy" name="txtMy" onkeypress="initialize();"/>
在我的.js文件中,我有:
initialize()
{
var x = $("#txtMy").val();
}
但是,如果我的文本框中有'2',然后我输入4,则x的值仍为2.如何解决此问题?
答案 0 :(得分:1)
您在onkeypress中初始化的拼写与声明(inititalize
)不符。
答案 1 :(得分:1)
使用keyup
以下是unobtrusive way中的操作方法。
<强> 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())
});
});
答案 2 :(得分:1)
keydown
和keypress
事件都在输入的密钥实际出现在文本框中之前执行。如果您想在键出现后获取输入的新值,请改为使用keyup
事件。
<input type="text" ID="txtMy" name="txtMy" onkeyup="initialize();"/>
initialize()
{
var x = $("#txtMy").val();
}
您应该考虑使用.on()在javascript中绑定您的事件处理程序,因为您仍在使用该库。保持你的逻辑(javascript)与你的视图(html)分开是一个很好的习惯。
答案 3 :(得分:0)
而不是标记事件处理程序,您可以使用jquery:
var x;
$("#txtMy").on("keyup", function(){
x = $(this).val();
alert(x);
})
答案 4 :(得分:0)
一些事情:
keyup
事件。 keypress
在录制角色之前开火。