来自外部的 getElementById 不起作用
getElementById from external not working
我尝试在提交表单后隐藏 div,但没有成功。
所以,我想知道使用外部js文件时的创建流程div。
考虑这段代码:
HTML:
<!DOCTYPE html>
<html>
<head>
<title>hello</title>
<link rel="stylesheet" type="text/css" href='style.css'></link>
</head>
<body>
<script src='external.js'></script>
</body>
</html>
external.js:
div1 = document.createElement("div");
div1.setAttribute('id', 'banana');
div1.innerHTML="<form id='form1' method='post' onsubmit='changeScreen()'> firstname: <input type='text' name='firstname' value='' /> <br> surname:<input type='text' name='surname' value='' /> <br> <input type='submit' id='button2' name='submit2' value='login'/></form>";
document.body.appendChild(div1);
function changeScreen(){
document.getElementById('banana').style.display='none';
}
(我想练习从外部 js 文件创建元素,所以这就是 html 看起来像那样的原因,我根本不想更改它。)
div创建成功。但是当我提交时,它只是重置 'firstname' 和 'username' 中的值。如果我只是在 changeScreen()
中放置一些警报,它就会显示出来。
如有任何想法,请提前 tnx(我也为糟糕的英语道歉)!
这是因为您的表单正在发布到同一个 URL,执行与刷新相同的操作。要在提交后留在同一页面上,请将 return false;
添加到您的代码中。
div1 = document.createElement("div");
div1.setAttribute('id', 'banana');
div1.innerHTML="<form id='form1' method='post' onsubmit='return changeScreen();'> firstname: <input type='text' name='firstname' value='' /> <br> surname:<input type='text' name='surname' value='' /> <br> <input type='submit' id='button2' name='submit2' value='login'/></form>";
document.body.appendChild(div1);
function changeScreen(){
document.getElementById('banana').style.display='none';
return false;
}
我尝试在提交表单后隐藏 div,但没有成功。 所以,我想知道使用外部js文件时的创建流程div。 考虑这段代码:
HTML:
<!DOCTYPE html>
<html>
<head>
<title>hello</title>
<link rel="stylesheet" type="text/css" href='style.css'></link>
</head>
<body>
<script src='external.js'></script>
</body>
</html>
external.js:
div1 = document.createElement("div");
div1.setAttribute('id', 'banana');
div1.innerHTML="<form id='form1' method='post' onsubmit='changeScreen()'> firstname: <input type='text' name='firstname' value='' /> <br> surname:<input type='text' name='surname' value='' /> <br> <input type='submit' id='button2' name='submit2' value='login'/></form>";
document.body.appendChild(div1);
function changeScreen(){
document.getElementById('banana').style.display='none';
}
(我想练习从外部 js 文件创建元素,所以这就是 html 看起来像那样的原因,我根本不想更改它。)
div创建成功。但是当我提交时,它只是重置 'firstname' 和 'username' 中的值。如果我只是在 changeScreen()
中放置一些警报,它就会显示出来。
如有任何想法,请提前 tnx(我也为糟糕的英语道歉)!
这是因为您的表单正在发布到同一个 URL,执行与刷新相同的操作。要在提交后留在同一页面上,请将 return false;
添加到您的代码中。
div1 = document.createElement("div");
div1.setAttribute('id', 'banana');
div1.innerHTML="<form id='form1' method='post' onsubmit='return changeScreen();'> firstname: <input type='text' name='firstname' value='' /> <br> surname:<input type='text' name='surname' value='' /> <br> <input type='submit' id='button2' name='submit2' value='login'/></form>";
document.body.appendChild(div1);
function changeScreen(){
document.getElementById('banana').style.display='none';
return false;
}