如何在HTML中指定提交表单时不进行验证?


<form> 元素是HTML中一个重要的组件,它允许我们在网站上创建交互式部分,例如联系表单、登录表单等。通过表单元素,用户可以输入数据并将其提交到Web服务器。<form> 元素非常灵活,可以包含许多不同的输入字段,例如文本框、单选按钮、复选框、下拉菜单和按钮。此外,<form> 元素包含多个属性,例如“action”和“method”,用于确定提交数据的目的地和处理方法。

表单验证是<form> 元素的关键部分之一,用于检查用户输入表单的数据是否符合必要的条件。验证允许我们检查提交的数据是否准确、完整且格式正确。表单数据的验证可以通过两种主要方法完成——客户端验证和服务器端验证。

在本文中,我们将学习如何在HTML中指定提交表单时不进行验证。我们将讨论在HTML中执行此任务的三种不同方法。

指定表单不进行验证的不同方法

有三种不同的方法可以检查表单是否有效。让我们详细逐一讨论这些方法。

方法一:使用“novalidate”表单属性

第一种方法是在表单标签中使用“novalidate”属性。此属性禁用浏览器默认的验证行为,这意味着提交表单时不会进行验证。

语法

<form action="/data-submitted" method="post" novalidate>
   <!-- your other input fields go here -->
</form>

在上面的代码中,我们在表单标签中添加了“novalidate”属性。这告诉浏览器在提交表单时不要进行验证。请注意,此方法仅禁用浏览器的默认验证行为。如果您有自定义验证逻辑,它仍然会执行。

示例

在此示例中,我们有一个包含<form> 元素的novalidate属性的HTML文件。此属性告诉浏览器禁用整个表单的验证。当用户点击提交按钮时,表单将在没有任何验证的情况下提交。

<html>
<head>
	<title>Using novalidate attribute</title>
</head>
<body>
	<form method="post" action="data-submit.php" novalidate>
		<label for="username">Username:</label>
		<input type="text" id="username" name="username" required><br>
		<label for="email">Email:</label>
		<input type="email" id="email" name="email" required></br>		
        <label for="password">Password:</label>
		<input type="password" id="password" name="password" required><br>
	   <button type="post">Add</button>
	</form>
</body>
</html>

方法二:使用“formnovalidate”表单属性

第二种方法是在提交按钮中使用“formnovalidate”属性。此属性告诉浏览器不要在点击按钮时验证表单。

formnovalidate属性会覆盖<form> 元素的novalidate属性,并且此formnovalidate属性可与<button> 元素中提供的type="submit"一起使用。

语法

<form action="/data-submitted" method="post" novalidate>
   <!-- your other input fields go here →
   <button type="add" formnovalidate>Add</button>
</form>

在上面的示例中,我们在提交按钮中添加了“formnovalidate”属性。这告诉浏览器不要在点击按钮时验证表单。请注意,此方法仅禁用浏览器的默认验证行为。如果您有自定义验证逻辑,它仍然会执行。

示例

在此示例中,我们有一个包含两个提交按钮的HTML表单。第一个提交按钮包含formnovalidate属性,该属性告诉浏览器在不执行验证的情况下提交表单。第二个提交按钮不包含此属性,并将触发浏览器的默认验证行为。

<html>
<head>
   <title>Using formnovalidate attribute</title>
</head>
<body>
   <form method="post" action="data-submit.php">
      <label for="username">Username:</label>
      <input type="text" id="username" name="username" required><br/>
      <label for="email">Email:</label>
      <input type="email" id="email" name="email" required><br/>
      <label for="password">Password:</label>
      <input type="password" id="password" name="password" required> <br/>
      <button type="post" formnovalidate>Add</button>
   </form>
</body>
</html>

方法三:使用自定义JavaScript阻止表单验证

第三种方法是使用JavaScript在提交表单时阻止默认的表单验证行为。这种方法可以更好地控制验证行为,并允许我们自定义验证逻辑。

语法

<form action="/data-submitted" method="post" novalidate>
   <!-- your other input fields go here →
   <button type="add" formnovalidate>Add</button>
</form>
<script>
   const formValidate = document.getElementById(data-form');
   formValidate.addEventListener(add, function(event) {
      event.preventDefault();
      //other data goes here
   });
</script>

在上面的代码中,我们使用JavaScript向表单提交事件添加了一个事件监听器。此事件监听器在提交表单时阻止表单的默认行为。然后,您可以添加自定义验证逻辑并以编程方式提交表单数据。

示例

在此示例中,我们有一个表单,其中包含一个名为validateDataForm()的JavaScript函数,该函数检索用户输入的值并检查它们是否满足所需的条件。如果任何验证测试失败,则使用alert()函数显示错误消息,并且该函数返回false,阻止表单提交。如果所有验证测试都通过,则该函数返回true,允许表单提交。

<html>
<head>
   <title>Using formnovalidate attribute</title>
</head>
<body>
   <script>
      function validateDataForm() {
         const usernameValidate = document.getElementById("username");
			const emailValidate = document.getElementById("email");
			const passwordValidate = document.getElementById("password");
			const emailValidateRegex = /^\S+@\S+\.\S+$/;
			if (usernameValidate.value === "") {
            alert("Enter a valid username");
				return false;
			}
			if (!emailValidateRegex.test(emailValidate.value)) {
				alert("Enter a valid email");
				return false;
			}
			if (passwordValidate.value.length < 10) {
				alert("Password must be at least 10 characters long.");
				return false;
         }
			return true;
		}
	</script>
   <form method="post" action="data-submit.php">
      <label for="username">Username:</label>
		<input type="text" id="username" name="username" required><br />
      <label for="email">Email:</label>
		<input type="email" id="email" name="email" required> <br /> <label for="password">Password:</label>
		<input type="password" id="password" name="password" required> <br />
      <button type="post" onclick="return validateDataForm()">Add</button> 
	</form>
</body>
</html>

结论

在本文中,我们讨论了如何在HTML中指定提交表单时不进行验证,并且我们已经看到了指定提交表单时不进行验证的不同方法。我们讨论了包括“novalidate”属性、“formnovalidate”属性以及使用JavaScript阻止默认表单验证行为的方法。

更新于:2023年5月2日

577 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告