我是javascript的初学者,正在努力学习。这里我有一个简单的输入,用户应该写一些东西,如果用户写了一些东西,它将打印出来,如果用户没有写任何东西,它应该说‘请写一些东西。’为此,我想使用not运算符(!)。你知道我为什么会得到这个错误吗:Uncaught TypeError: Cannot set property 'innerHTML' of null at myFunction at HTMLFormElement.onsubmit
下面是我的代码:
<!DOCTYPE html>
<html>
<body>
<form onsubmit="myFunction(event)">
<input type="text" id="text">
</form>
<div id="demo"></div>
<script>
var arvo = document.getElementById("text").value
if (!arvo) {
function myFunction(arvo) {
event.preventDefault();
document.getElementById(demo).innerHTML = "text you typed: " + arvo;
}
} else {
function myFunction(arvo) {
event.preventDefault();
document.getElementById(demo).innerHTML = "Please write something";
}
}
console.log(arvo)
</script>
</body>
</html>
发布于 2020-07-27 23:50:26
当您重新加载页面时,JavaScript代码会立即执行。此外,如果在 if 块中创建函数,则只能在那里访问该函数。并且未定义变量event。
您必须在函数中调用if-else。
解决方案:
<!DOCTYPE html>
<html>
<body>
<form id="form">
<input type="text" id="text" >
</form>
<p id="demo"></p>
<script>
function myFunction(event) {
event.preventDefault();
var text = document.getElementById('text').value; //get the value
if (text) document.getElementById('demo').innerHTML = "Text typed: " + text; // if the text is something
else document.getElementById('demo').innerHTML = "Please type something"; // if nothing
console.log(text);
}
document.getElementById('form').addEventListener('submit', myFunction); //run the function when it's submitted. Event listeners are perfect for this
</script>
</body>
</html>
希望这能有所帮助!
https://stackoverflow.com/questions/63118626
复制相似问题