在将字段设置为必填字段后仍然可以提交表单
Still able to submit form after setting field as mandatory
函数 假设用户是输入字段,然后单击"提交"按钮。所有字段都是必填字段。因此,如果用户不输入任何字段,他们将无法导航到下一页。
问题:
我已经将每个字段设置为"必需",但是,我仍然可以导航到下一页。这怎么可能,我找不到我到底做错了什么
代码:
<form style=" alignment-adjust: autofocus" class="container" action="Page5" method="POST">
Name: <input type="text" name="name" required><br><br>
Email: <input type="text" name="email" required><br><br>
<input type="image" src="image/Submit.png" alt="Submit" width="250px" height="50px" onClick = "Page5()">
</form>
<script>
function Page5() {
$("#page4").hide();
$("#page5").show();
}
</script>
问题是浏览器只在表单提交时验证表单。因为您实际上并没有提交表单,而是使用javascript,所以浏览器不会显示任何错误消息。
一个可能的解决方案是这样的:
function Page5() {
var $myForm = $('#myForm');
// Check to see if the form is valid
if ($myForm[0].checkValidity()) {
// If the form is valid, go to the next page.
$("#page4").hide();
$("#page5").show();
} else {
// If the form is invalid, submit it. The form won't actually submit;
// this will just cause the browser to display the native HTML5 error messages.
$myForm.find('input[type=image]').click()
}
}
来源。请注意,您需要在表单中添加id="myForm"
或类似内容。
最后要记住的一件事是永远不要依赖javascript或浏览器验证,因为这很容易伪造。它应该只用于用户方便,您应该始终仔细检查服务器上的提交。
required
属性在IE9或更早版本中不受支持,在Safari中也不受支持。因此,我建议您为这些浏览器创建自己的验证。否则,您的Page5()
方法会出现问题。也许您正在使用它提交请求,因此它跳过了所需的属性验证。
在W3Schools 上阅读更多信息
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 带有验证和隐藏字段值的提交按钮
- 添加和删除隐藏字段数组中的值,而不提交表单
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 检索要提交的字段的标记位置
- 在表单中的输入字段上提交事件
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 角度,材料形式只说提交尝试后需要字段
- 提交表单时,显示或识别隐藏的必填字段并将其集中
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- ReactJS表单提交如何访问字段值
- 按enter键时,jQuery UI自动完成字段未提交
- 如何在表单提交后清除输入字段
- 如何防止某些形式's个字段无法提交
- Magento表单验证,表单提交时没有有效字段
- 获取所有输入字段并保留文本字段中的值,即使在使用 javascript 和 php 提交按钮后也是如此
- 为一个输入字段提交多个值
- 如何使用ajax和额外字段提交
- 不能用jquery标签输入样式字段提交表单数据
- HTML/CSS表单:通过必需字段提交的数据无效或输入