Проверка Bootstrap4 не работает в IE 11 при добавлении прослушивателя событий в каждое обязательное поле в ASP. NET Webforms - PullRequest
0 голосов
/ 26 мая 2020

Я проверяю asp. net элементы управления веб-формы с помощью bootstrap4 следующим образом:

<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?

1 Ответ

0 голосов
/ 27 мая 2020

Я обнаружил, что мой код отлично работает в 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.) Итератор формы let формы не был преобразован ни в IE 11 но поскольку я использую только одну форму, я просто сделал это:

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