У меня есть следующий код для захвата данных из всех форм на странице. События связаны динамически.Динамически связанное событие не запускается при отправке формы через jQuery
formCapture: function() {
console.log("formCapture");
var formsCollection = document.getElementsByTagName("form");
console.log(formsCollection);
for (var i = 0; i < formsCollection.length; i++) {
this.bindEvent(formsCollection[i]);
}
},
bindEvent: function (formElement) {
console.log("bindEvent");
var $this = this;
if (formElement.addEventListener) {
formElement.addEventListener('submit', function (e) {
$this.collectData(e, $this)
}, false);
}
},
collectData: function (e, that) {
// save form data here
}
Он отлично работает, когда форма отправлена, нажав кнопку отправки (поведение по умолчанию).
Но когда я связать что-то вроде этого на форме:
jQuery("#form-submit").on("click",function(e){
e.preventDefault();
jQuery("#test-form").submit();
console.log("form has been submitted");
window.location = "https://example.com";
})
Где #test-form
это имя формы и #form-submit
является идентификатор кнопки представить функцию collectData
, привязанный к нему не будет стрелять.
Есть ли способ получить данные из форм без прерывания потока?
Попробуйте сделать флаг 'useCapturing' (логическое значение, переданное' addEventListener') 'true'. –
Пробовал. Но бесполезно. –