如何在 JavaScript 中提交表单后清除表单内容,而不使用 reset 方法?


在互联网上,我们很少能找到不包含表单的网站。大多数网站包含联系表单,有些包含工作申请表单,有些包含产品订单表单。

表单允许我们从用户那里获取输入,并在应用程序的前端或后端进行操作。此外,为了向应用程序用户提供良好的用户体验,我们需要在用户提交表单后重置所有表单数据。

在本教程中,我们将学习几种方法来清除表单的输入字段,一旦用户按下提交按钮。

提交表单后清除单个输入字段

在本部分中,我们将学习如何清除表单的单个输入字段。有时,它需要用户通过更改某些输入值来多次提交表单。因此,在这种情况下,我们可以分别清除某些输入字段,而不是清除所有输入字段。

语法

用户可以按照以下语法清除表单的单个输入字段。

let input1 = document.getElementById('input1');
input1.value = "";

在上面的语法中,我们通过其 ID 访问表单的输入,并将空字符串赋值给输入的值。

示例

在下面的示例中,我们创建了一个包含单个输入的表单。当用户按下“清除输入字段”按钮时,它将调用clearText()函数,该函数将重置输入字段的值。

在输出中,用户可以观察到,当他们按下提交按钮时,它会清除输入字段。

<html>
<body>
   <h3>Clearing only single input field of form when a user submits the form</h3>
   <p>Please enter a string below:</p>
   <form>
      <input type = "text" id = "input1" />
      <br> <br>
   </form>
   <button type = "submit" onclick = "clearText()"> clear input field</button>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById('output');
      function clearText(event) {
         // access input field
         let input1 = document.getElementById('input1');
         // clear the input field.
         input1.value = "";
         output.innerHTML += "Form submitted successfully! <br>";
      }
   </script>
</body>
</html>

提交表单后清除表单的所有输入字段

有时,我们可能需要清除表单的所有输入字段。我们可以使用JavaScriptquerySelector()方法来选择表单的所有输入字段,这将返回所有输入字段的数组

之后,我们可以遍历输入数组,并通过将其值属性赋值为空字符串来清除每个输入。

语法

用户可以按照以下语法访问所有输入并清除它们。

var allInputs = document.querySelectorAll('input');
allInputs.forEach(singleInput => singleInput.value = '');

在上面的语法中,“inputs”是所有输入的数组,我们使用了forEach()循环方法来遍历所有输入。

示例

在下面的示例中,我们创建了多种不同类型的多输入表单。之后,在 JavaScript 中,我们使用querySelector()方法选择所有输入。在forEach()循环中,我们传递了回调函数,该函数为每个输入的值属性设置空字符串。

当用户点击“清除所有输入”按钮时,它将清除所有输入字段。

<html>
<body>
   <h3>Clearing only all input fields of form when a user submits the form</h3>
   <form>
      First Name: <input type = "text" id = "input1" />
      <br> <br>
      Last Name: <input type = "text" id = "input2" />
      <br> <br>
      Email: <input type = "email" id = "input3" />
      <br> <br>
   </form>
   <button type = "submit" onclick = "clearAllInputs()"> clear all inputs </button>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById('output');
      function clearAllInputs(event) {
         var allInputs = document.querySelectorAll('input');
         allInputs.forEach(singleInput => singleInput.value = '');
         output.innerHTML += "Form submitted and cleared successfully! <br>";
      }
   </script>
</body>
</html>

使用 form.reset() 方法重置整个表单

form.reset()是 JavaScript 中用于清除表单的内置方法。我们可以用它来将表单中的所有值重置为默认值。

语法

用户可以按照以下语法使用reset()方法在用户提交表单时重置整个表单。

formToReset.reset();

在上面的语法中,formToReset() 是要重置的表单元素。

示例

下面的示例演示了reset()方法的使用。它包含具有两个不同输入字段的表单。此外,我们创建了一个类型为“提交”的按钮,用户可以按它来提交表单。

在 JavaScript 中,我们使用了事件监听器来提交事件,并在提交事件时执行 reset() 方法。

<html>
<body>
   <h3>Clearing only the form using the reset() method when a user submits the form</h3>
   <form id = "demo_form">
      Name: <input type = "text" id = "input1" />
      <br> <br>
      Email:<input type = "email" id = "input3" />
      <br> <br>
      <button type = "submit"> clear all inputs </button>
   </form>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById('output');
      const formToReset = document.getElementById('demo_form');
      formToReset.addEventListener('submit', (e) => {
         e.preventDefault();
         formToReset.reset();
         output.innerHTML += "The form is resetted successfully!"
      });
   </script>
</body>
</html>

我们已经成功学习了三种在提交表单后清除表单的方法。用户可以使用 reset() 方法清除整个表单。此外,用户还可以仅使用第二种方法清除表单的输入字段。用户应该使用第一种方法仅清除特定输入字段。

更新于:2023年9月14日

41K+ 次浏览

启动你的职业生涯

通过完成课程获得认证

开始学习
广告