gpt4 book ai didi

javascript - 使用 javascript 隐藏/显示 HTML 表单(按下按钮时)

转载 作者:搜寻专家 更新时间:2023-10-31 22:03:10 26 4
gpt4 key购买 nike

我叫迈克尔·托斯卡诺。我目前正在为学校做一个 3 层项目,但是我坚持似乎是微不足道的一步。现在,我正在尝试通过单击一个按钮隐藏单个 HTML 表单,并通过单击另一个按钮显示。 HTML 页面上只有 2 个表单。如果我试图隐藏第二种形式,我现在所拥有的是有效的,但是如果我试图只隐藏第一种形式,它会隐藏整个页面,除了页面顶部的两个按钮(两种形式)。我想也许我不小心将第二种形式放在第一种形式中(如果可能的话),但在查看我的代码后,它看起来(至少对我来说)就像我用 .总之,整个HTML文件如下:

    <!DOCTYPE html>
<html><head>

<button type=button id=f1 onclick="func(1)">Order Form</button>
<button type=button id=f2 onclick="func(2)">Retrieval Form</button>

<script type="text/javascript">
function func(a) {
if(a==1) {
document.getElementById("order").style.display="none";
}
if(a==2) {
document.getElementById("order").style.display="block";
}
}
</script>

<script type="text/javascript">
function showValue(newValue)
{
document.getElementById("range").innerHTML=newValue;
}
</script>
</head>

<body>
<form id=order action=form.php >

<p><center>Name: <input type=text
name="name"
placeholder="Enter Your Name"
required
autocomplete="on"></center><br>

<center>Email: <input type=text
name="email"
placeholder="Enter Your Email"
required
autocomplete="off"></center><br>

<center>Password: <input type=text
name="password"
placeholder="15 Characters Or Less"
required
autocomplete="off"></center><br>

<center>Address: <input type=text
name="address"
placeholder="Enter Your Address"
required
autocomplete="off"></center><br>

<center>Laptops: <input type=range
name=laptop
value=0
min=0
max=10
onChange="showValue(this.value)">

<center>Monitors: <input type=range
name=monitor
value=0
min=0
max=10
onChange="showValue(this.value)">

<center>Mouses: <input type=range
name=mouse
value=0
min=0
max=10
onChange="showValue(this.value)">

<center>Keyboards: <input type=range
name=keyboard
value=0
min=0
max=10
onChange="showValue(this.value)">

<br>
<br>

<center>Shipping Carrier: <SELECT name="delivery">
<option value="fedex">FEDEX</option>
<option value="ups">UPS</option>
</SELECT></center>

<br>

<center>Would you like an email receipt?<br>
<center>Yes <input type="radio" name="group1" value=1> No
<input type="radio" name="group1" value=0 checked></center><br>

<br>

<center><input type=submit value="Submit Order"></center></p>

</form>

<form id=retrieve action=form2.php>

First Name: <input type=text name=first><br>
Last Name: <input type=text name=last><br>
Password: <input type=password name=p1><br>
Retype Password: <input type=password name=p2><br>
<input type=submit>

</form>
</body>
</html>

我想指出,我对 HTML 和 javascript 还很陌生,所以如果任何人的回复都能附上简短的解释,我将不胜感激。提前谢谢大家。

最佳答案

有几个问题:

  • 您不需要为每个 Javascript 函数使用单独的脚本标记。只需将所有 Javascript 放在一个脚本标记中即可。
  • 我强烈建议使用 CSS 来居中元素而不是 <center>标签。你有很多未关闭的<center>标签,启动。就我个人而言,我认为左对齐看起来比居中好很多。
  • 如果您的 HTML 是一个完整的文档,您需要标签 <head> , 和 <body> .使用 W3C Markup Validation Service确保您拥有有效的 HTML 代码。
  • HTML 中的属性值应该用引号引起来,例如 <form id=order>将是 <form id="order"> .甚至有可能 required需要是 required="required" .
  • 使用 javascript “连接”javascript 事件而不是放置内联事件处理程序被认为是最佳实践。例如:

    document.getElementById('f1').onclick = function () {
    func(1);
    };

    我认为在按钮上放置一个数据属性实际上会更好,该属性具有要显示/隐藏的表单的 id,然后在 onclick 事件中(现在只需要一个没有 if 语句的函数版本) 你只需拉出 expando 数据值。例如<button data-for="order"> .

  • 在您的显示/隐藏代码中,您只使用一种形式。对另一个的引用在哪里?此外,要获得所需的切换效果,您需要检测表单是否已隐藏并适当更改其显示样式。
  • 您应该研究 == 之间在 Javascript 中的区别和 === .
  • HTML 元素之间不需要那么大的垂直空间。与大多数人相比,我完全赞成打断长行,但是当标记散布开来时,就很难扫描了。你可以把<br>在行尾。
  • 许多 Javascript 程序员更喜欢将左花括号放在前一行的末尾。这是一个次要的考虑因素,但它有助于节省空白。您会在我的代码示例中看到我遵循了这个约定。选择权在您。
  • 你的 <select>标签应小写。
  • “15 个字符或更少”是不正确的语法。它应该是“15 个字符或更少”或者“15 个或更少字符”或者更好,“最多 15 个字符”

请参阅this JS Fiddle对于我正在运行的清理后的 HTML 文档版本。

关于javascript - 使用 javascript 隐藏/显示 HTML 表单(按下按钮时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15840700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com