javascript - 如何使用 Javascript 在同一个 div 中显示表单数据?
问题描述
我试图在单击提交按钮后在同一个 div 中显示表单数据但没有表单。在当前代码中,单击提交按钮后隐藏的 div 没有出现。请仔细阅读我尝试过的以下代码,并参考期望输出的附加图像。其中标题和描述应该出现在同一个 div 中以代替表单。
有人帮我解决我的代码哪里出错了。谢谢。 https://commons.wikimedia.org/wiki/File:Lorem_Ipsum_Helvetica.png
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script>
function fn(){
var fn = document.getElementById("f1").value;
var des = document.getElementById("t1").value;
var mainDiv = document.getElementById("d2");
var div = document.getElementById("d1");
if(mainDiv.style.display==="block"){
mainDiv.style.display="none";
div.style.display="block";
}
document.getElementById("fn1").innerHTML = fn;
document.getElementById("t2").innerHTML = des;
}
</script>
</head>
<body>
<div style ="height:400px; width:500px; border:1px solid black; display:block;" id="d2">
<form>
First Name: <input type="text" name="fn" id="f1" /><br /><br />
Description: <textarea id="t1" rows="5" cols="20"></textarea><br /><br />
<input type="submit" name="b1" id="b1" value="Add" onclick="add()" />
<input type="submit" name="b1" id="b2" value="Cancel" onclick="Cancel()" />
</form>
</div>
<div style ="height:400px; width:500px; border:1px solid black; display:none;" id="d1">
<p><span id="fn1"></span></p>
<p><span id="t2"></span></p>
</div>
</body>
</html>
解决方案
好吧,有几件事是错的。
if
如果您不验证字段中的输入,则在这种情况下不需要该功能的一部分(如果需要,您可以发表评论,我会为您添加)- 添加和取消的按钮是
submit
类型的,所以,一旦你点击它,即使你在JS上有写代码,它们在显示后也会消失,因为它们是作为表单提交的。 - 您正在调用事件
add()
,Cancel()
这些onClick
事件尚未在任何 JS 函数中声明。
好吧,毕竟,我只是将输入的类型从 更改submit
为button
,添加了一个 CSS 部分以更好地查看您正在使用的元素,并更改了 JavaScript 部分只是为了满足您的要求。看看它是否有帮助:
.d2 {
width: 500px;
height: 400px;
border: 1px solid black;
display: block;
}
.d1 {
width: 500px;
height: 400px;
border: 1px solid black;
display: none;
}
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script>
function myFunction(){
var fn = document.getElementById("f1").value;
var des = document.getElementById("t1").value;
var fDiv = document.getElementById("d2"); //fDiv stands for "Form Div"
var hDiv = document.getElementById("d1"); // hDiv stands for "Hidden Div"
hDiv.style.display = "block";
document.getElementById("fn1").innerHTML = fn;
document.getElementById("t2").innerHTML = des;
fDiv.style.display = "none";
}
</script>
</head>
<body>
<div name="form" id="d2" class="d2">
<form>
First Name: <input type="text" name="fn" id="f1" /><br /><br />
Description: <textarea id="t1" rows="5" cols="20"></textarea><br /><br />
<input type="button" name="b1" id="b1" value="Add" onclick="myFunction()" />
<input type="button" name="b1" id="b2" value="Cancel" onclick="Cancel()" />
</form>
</div>
<div name="hidden" id="d1" class="d1">
<p><span id="fn1"></span></p>
<p><span id="t2"></span></p>
</div>
</body>
</html>
有什么问题,可以评论和提问。
推荐阅读
- android - IOError: [Errno 2] 没有这样的文件或目录:目录...proj.android\\app/build/outputs/apk\\debug\\app-debug.apk
- javascript - Safari 将没有时区的 ISO 8601 日期时间字符串解析为 UTC 而不是本地
- javascript - 如何在不同的组件 React native 中设置状态?
- database - 测试数据库交互
- windows - 如何在 uwp 中将 VisualStateManager 与内容对话控件一起使用
- django - 尽管多次安装,为什么它说“模块不存在”
- c# - 在 C# 异步方法中设置变量值
- python - 没有注册 OpKernel 以支持具有这些属性的 Op 'Round'。注册设备:[CPU],注册内核:
- python - 有没有办法提高两幅图像之间指向差异的准确性?
- laravel - 多个字段中的一个字段不使用保存功能更新,Laravel 5.8