首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript onkeypress输入文本

javascript onkeypress输入文本
EN

Stack Overflow用户
提问于 2017-04-28 14:14:30
回答 3查看 2.8K关注 0票数 2

我正在学习Javascript..下面的代码只有当我的脚本标签在输入文本元素下面时才能工作,但如果我把代码放在输入文本标签上面,它就不能工作。我能知道为什么吗?以下是代码:

代码语言:javascript
复制
<head>    
</head>
<body>
    <input type="text" id="name" >   
    <script type="text/javascript">             
        var txtId = document.getElementById('name');    
        txtId.addEventListener('keypress', function(e){
            console.log('Pressed!')
        })                      
    </script> 
</body>

下面的代码与上面的代码相同,除了我使用的是函数,其中我使用的是与上面相同的代码。但在本例中,我的script标记位于input text标记之上,并且它可以正常工作。在这种情况下它是如何工作的?代码如下:

代码语言:javascript
复制
<head>
    <script type="text/javascript">   
        function keyPressListener(){
            var txtId = document.getElementById('name');   
            txtId.addEventListener('keypress', function(e){
                console.log('Pressed!')
            })
        }                   
    </script>
</head>
<body>
<input type="text" id="name" onkeypress="keyPressListener()">

</body>

那么,这两个代码到底有什么区别呢?

EN

回答 3

Stack Overflow用户

发布于 2017-04-28 14:18:13

当您使用onkeypress属性时。它实际上与addEventListener的工作方式相同。您只需编写一个简单的函数并在onkeypress中调用它

代码语言:javascript
复制
<input type="text" id="name" onkeypress="keyPressed()">

<script>
function keyPressed(){
    console.log('Key Pressed');
}
</script>
票数 2
EN

Stack Overflow用户

发布于 2017-04-28 14:18:30

为什么不能把输入的-Because文档放在上面没有准备好.so你需要body.onload事件.see的body onload=start()它会在body加载后应用js函数

代码语言:javascript
复制
<body onload="start()">
  <input type="text" id="name">

  <script type="text/javascript">
    function start() {
      var txtId = document.getElementById('name');

      txtId.addEventListener('keypress', function(e) {
        console.log('Pressed!')
      })
    }
  </script>

</body>

和第二个 -you在单个事件中使用两个函数。因此,可以使用任何一个事件

如果与keyPressListener()的内联按键一起使用,则为

;否则,请使用按键(addEventListener)的Dom事件

*注:

  1. 不包括addEventListener() inside keyPressListener()
  2. 如果使用with addEventListener()删除onkeypress事件内联的

和G224是相同的操作。

代码语言:javascript
复制
<head>
<script type="text/javascript">
  function keyPressListener() {
      console.log('Pressed!')
  }
</script>
</head>

<body>
  <input type="text" id="name" onkeypress="keyPressListener()">

</body>

票数 2
EN

Stack Overflow用户

发布于 2017-04-28 14:25:46

addEventListener已弃用

在您的输入上尝试以下内容:

在keyPressListener()后添加;

<input type="text" id="name" onkeypress="keyPressListener();">

如果这不起作用,试试这个:

<input type="text" id="name" onkeypress="keyPressListener(); return true;">

HTML5知道当您使用onkeypress属性时,它需要调用JavaScript函数when the key is pressed。基本上,您可以将任何函数式JavaScript放在onkeypress="(JavaScript goes )"属性的参数中。

您也可以只从DOM中获取元素,然后将事件侦听器添加到元素中,如下所示:

jQuery:$('#name').onkeypress( function() { //code goes here } );

普通Js:document.getElementById('name').onkeypress( function() { //code goes here } );

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43673199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档