将事件侦听器添加到 ASP.NET Webforms 中的每个必填字段时,Bootstrap4 验证在 IE 11 中不起作用

Bootstrap4 validation not working in IE 11 when adding event listener to each required field in ASP.NET Webforms

我正在使用 bootstrap4 验证 asp.net 网络表单控件,如下所示:

<form runat="server" class="needs-validation" novalidate>

 <div class="form-group">
     <asp:TextBox runat="server" ID="Amount" CssClass="form-control" Text="" required></asp:TextBox>
 </div>

 <asp:Button ID="Submit" OnClick="Submit_Click" Text="Submit" runat="server" />
</form>

然后在母版页的 javascript 中添加事件侦听器,如下所示:

window.addEventListener('load', () => {

    var forms = document.getElementsByClassName('needs-validation');

    for (let form of forms) {
        form.addEventListener('submit', (evt) => {

           if (!form.checkValidity()) {
               evt.preventDefault();
               evt.stopPropagation();

           } else {

                 console.info('All form fields are now valid...');
           }

           form.classList.add('was-validated');

         });
       }
    });

它在 Chrome 和 FireFox 中工作正常,但在 IE 11 中没有任何验证。在 IE11 中按下提交按钮后页面会刷新。在 IE11 的控制台中,它表示此行存在语法错误:

window.addEventListener('load', () => {

有没有人看到我做错了什么以及我如何解决这个问题以便验证在 IE 11 中工作?

我发现我的代码在 Chrome 和 Firefox 中运行良好,但在 IE 11 和 Edge 中运行不正常。通过不使用 ES6 JavaScript 特性

,我也让它在那些浏览器中工作

1.) 必须避免使用箭头函数:

已替换

window.addEventListener('load', () => {

window.addEventListener('load', function () {

form.addEventListener('submit', (evt) => {

form.addEventListener('submit', function (evt) {

2.) forms 迭代器的 let 形式在 IE 11 中也没有被识别,但由于我只使用一种形式,所以我只是这样做了:

var formName = document.getElementById('Form1');