无法在javascript中的另一个函数中运行setInterval



非常小的问题。。。

问题:当我运行代码时,它不会显示div中的输入字段值,但为什么?

要求:我的要求是第一个用户在输入字段中输入值,然后当我点击按钮时,输入值显示在div上。

代码:

function abc(){
window.setInterval(()=>{
var myForm = document.getElementById('myForm');
var text = document.getElementById('text');

text.innerText = myForm.elements['email'].value;
}, 1);        
}
<form id="myForm">
<input type="number" name="email" value="user@example.com">
<button id="btn" onclick="abc()">click On me</button>
</form>
<p id='text'></p>

您不需要"setInterval";对于这个动作

当button元素在form元素中时,它默认为send函数,在这种情况下,它会刷新页面。因此,字段中的内容在填充后立即被清除。

我删除了表单元素。现在,当点击按钮时,input元素的内容被获取并显示在p元素中

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input id="mail" type="text" name="email" value="user@example.com">
<button id="btn" onclick="abc()">click On me</button>
<p id='text'></p>
<script>
function abc() {
var mail = document.getElementById('mail');
var text = document.getElementById('text');
text.innerText = mail.value;
}
</script>
</body>
</html>


带有setInterval的版本

在按下按钮"之后;setInterval";将被激活。每隔100ms,它将从输入元素中获取所有信息,并将其填充到P元素中。您可以在字段中书写,文本将立即出现在另一个元素中。为了不在按下按钮后积累空间,我在代码中设置了一行来停用按钮

function abc() {
document.getElementById('btn').setAttribute("disabled", true);
setInterval(() => {
var mail = document.getElementById('mail');
var text = document.getElementById('text');
text.innerText = mail.value;
}, 100);
}
<input id="mail" type="text" name="email" value="user@example.com">
<button id="btn" onclick="abc()">click On me</button>
<p id='text'></p>

最新更新