我正在学习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标记之上,并且它可以正常工作。在这种情况下它是如何工作的?代码如下:
<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>那么,这两个代码到底有什么区别呢?
发布于 2017-04-28 14:18:13
当您使用onkeypress属性时。它实际上与addEventListener的工作方式相同。您只需编写一个简单的函数并在onkeypress中调用它
<input type="text" id="name" onkeypress="keyPressed()">
<script>
function keyPressed(){
console.log('Key Pressed');
}
</script>发布于 2017-04-28 14:18:30
为什么不能把输入的-Because文档放在上面没有准备好.so你需要body.onload事件.see的body onload=start()它会在body加载后应用js函数
<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事件
*注:
addEventListener() inside keyPressListener()。addEventListener()删除onkeypress事件内联的和G224是相同的操作。
<head>
<script type="text/javascript">
function keyPressListener() {
console.log('Pressed!')
}
</script>
</head>
<body>
<input type="text" id="name" onkeypress="keyPressListener()">
</body>
发布于 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 } );
https://stackoverflow.com/questions/43673199
复制相似问题