Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onkeypress文本框问题_Javascript_Jquery - Fatal编程技术网

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
    事件<代码>按键在录制字符之前触发
  • HTML代码段中的initialize()函数拼写错误

  • 请参见在输入的键实际出现在文本框中之前,在

    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();
    }