JavaScript: добавить последнее событие формы - PullRequest
0 голосов
/ 18 января 2019

Я пишу плагин и хочу добавить функцию к событию submit / onsubmit, которая должна срабатывать только в том случае, если все существующие события submit / onsubmit возвращают true. Гарантируется, что мой javascript-файл будет наконец загружен, но я понятия не имею, есть ли уже прослушиватель события submit (например, из другого плагина).

Предположим, у меня есть эта форма:

<form action="" method="POST" onsubmit="return validateForm()" id="dummyform">
    Mandatory field:<br>
    <input type="text" name="required" id="required" value="">
    <br><br>
    <input type="submit" value="Submit" class="placeOrder">
</form> 

on-submit-Event проверяет форму и, возможно, есть другие события, прослушивающие submit-событие. Форма проверки может выглядеть следующим образом:

function validateForm() {
        var x = document.getElementById('required').value;
        if (x == "") {
            alert("required fields must be filled out");
            return false;
        }
        return true;
    }

Есть ли способ обеспечить выполнение всех существующих слушателей, и только если все вернут true, выполнить мою функцию?

Я пробовал что-то вроде этого:

var classname = document.getElementsByClassName("hook");
Array.from(classname).forEach(function(element) {
    let form = findParentForm();
    bindEvent(form, 'submit', function(e){
       e.preventDefault();
       if(form.onsubmit() === false)
             return false;
       modal.style.display = "block";
       return false;
       });
});

BindEvent - это просто функция для поддержки IE8. Это element.addEventListener(eventName, eventHandler, false); или element.attachEvent('on' + eventName, eventHandler);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...