【发布时间】:2020-11-12 10:28:19
【问题描述】:
它在 chrome 和 edge 中完美运行,但在 IE11 中却不行。我尝试删除 novalidate,但它使验证仅在 IE11 中有效。
这是我的代码:
<form class="m-t needs-validation" id="needs-validation" role="form" action="index.html" novalidate>
<div class="form-group">
<input type="text" class="form-control" placeholder="Username" required>
<div class="invalid-feedback">
Please enter a valid username.
</div>
</div>
<div class="form-group">
<input type="password" class="form-control" placeholder="Password" required>
<div class="invalid-feedback">
Please enter a valid password.
</div>
</div>
<button type="submit" class="btn btn-primary block full-width m-b">Login</button>
</form>
JavaScript 中的事件监听器如下:
<script>
(function() {
'use strict';
window.addEventListener('load', function () {
var forms = document.getElementsByClassName('needs-validation');
var validation = Array.prototype.filter.call(forms, function(form) {
form.addEventListener('submit', function (evt) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
}, false);
})();
</script>
我的代码是否做错了以及如何修复它,所以它也可以在 IE11 中工作?
【问题讨论】:
-
您的代码没有问题。它可以在任何浏览器上很好地工作..(
novalidate有或没有偶数)。 -
我找到了解决方法,这是我的错误,我不允许阻止内容(IE 限制运行脚本)
-
是的,您应该允许被阻止的内容.. 是的,限制脚本。尝试始终关注控制台日志。
-
从您上次的评论来看,您似乎已经解决了这个问题。我建议您可以将解决方案发布为答案,并在 48 小时后将您的答案标记为已接受的答案,此时可以进行标记。它可以在未来帮助其他社区成员解决类似的问题。感谢您的理解。
标签: javascript html jquery css internet-explorer-11