如何解决JavaScript 表单验证必需
您好,我正在为自己建立一个网站,遇到了这个问题,我的表单直接进入其成功页面,输入为空。我怎样才能解决这个问题?我已经浏览了像我这样的其他问题,但似乎没有一个能解决这个问题。表单在 HTML 标签内,输入关闭“/>”。我认为这可能是我的脚本影响它,但我不明白我应该如何编码以“验证”表单的概念。我知道你可以用 JavaScript 和 JQuery 来做到这一点。话虽如此,我该如何解决我的这个问题,这里是代码片段。
<div class="contact-form col-md-6 col-sm-6">
<form action="#" name="contact" class="needs-validation">
<label for="fname">Full Name</label>
<input type="text" id="fname" name="firstname" placeholder="Enter your full name..." required />
<label for="email">Email</label>
<input type="text" id="email" name="email" placeholder="Enter a valid email..." required />
<label for="subject">Message</label>
<textarea id="subject" name="subject" placeholder="Your requested choice/inquiry..." required></textarea>
<a href="success.html" class="button-submit">SEND</a>
</form>
</div>
这是我尝试编写的脚本:
// Disable form submissions if there are invalid fields
(function() {
'use strict';
window.addEventListener('load',function() {
// Get the forms we want to add validation styles to
var forms = document.getElementsByClassName('needs-validation');
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms,function(form) {
form.addEventListener('submit',function(event) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
},false);
});
},false);
})();
感谢您的帮助,谢谢。
解决方法
你的代码不对,不应该是这样的, a 和 href 将始终将您重定向到指定页面,而不是发布或获取。
更改此代码:
<a href="success.html" class="button-submit">SEND</a>
为此:
<button class="btn btn-primary" type="submit">SEND</button>
您的 HTML 应如下所示:
<div class="contact-form col-md-6 col-sm-6">
<form method="post" action="#" name="contact" class="needs-validation">
<label for="fname">Full Name</label>
<input class="form-control" type="text" id="fname" name="firstname" placeholder="Enter your full name..." required />
<label for="email">Email</label>
<input class="form-control" type="text" id="email" name="email" placeholder="Enter a valid email..." required />
<label for="subject">Message</label>
<textarea class="form-control" rows="3" id="subject" name="subject" placeholder="Your requested choice/inquiry..." required></textarea><br>
<button type="submit"class="btn btn-success">SEND</button>
</form>
</div>
您的脚本没有任何问题!你要好好学习html结构。
,您需要在 onsubmit 函数开始时阻止您的默认权限。当您的 checkValidity 函数正在运行时,表单可能已经完成处理然后提交。防止它这么高只会阻止它一起处理,因此您可以检查您的验证并根据结果执行您想要的操作。
form.addEventListener('submit',function(event) {
event.preventDefault();
if(form.checkValidity()){
form.classList.add('was-validated');
}
},false);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。