Как перехватить submit всех форм на странице, включая динамические? Приветствую. Есть код:$('form').submit(function(){ var form_data = $(this).serializeArray();
form_data.push({name:'cbk_sites_conf_id', value:cbk_sites_conf_id}); form_data.push({name:'site', value:cbk_site}); form_data.push({name:'pre_referrer', value:localStorage.first_refferer}); $.post('//example.com/widget/cbk_vizov', form_data); //console.log(form_data); //return false; }); Который перехватывает все формы. Но если форма была создана динамически на странице, на неё не вешается событие. Пробовал изменить код так:setTimeout(function(){ console.log('inited'); $('html').on( 'submit', 'form', function () { console.log(this); var form_data = $(this).serializeArray();
form_data.push({name:'cbk_sites_conf_id', value:cbk_sites_conf_id}); form_data.push({name:'site', value:cbk_site}); form_data.push({name:'pre_referrer', value:localStorage.first_refferer}); $.post('//example.com/widget/cbk_vizov', form_data); }); },3000); И вообще не работает XD Как правильно перехватывать все формы на странице, даже есди они были созданы динамически (рисуются в модальных окнах)?
Для того чтобы перехватить submit всех форм на странице, включая динамически созданные формы, можно использовать делегирование событий через метод on() в jQuery.
Вот пример кода, который позволит перехватить submit всех форм, даже динамически созданных:
$(document).on('submit', 'form', function() { var form_data = $(this).serializeArray(); form_data.push({name:'cbk_sites_conf_id', value:cbk_sites_conf_id}); form_data.push({name:'site', value:cbk_site}); form_data.push({name:'pre_referrer', value:localStorage.first_refferer}); $.post('//example.com/widget/cbk_vizov', form_data); // Можно добавить дополнительные действия здесь return false; // Чтобы предотвратить отправку формы по умолчанию });
Этот код будет перехватывать событие submit у всех форм на странице, включая динамически созданные. Важно помнить, что необходимо подключить jQuery перед исполнением этого кода.
Надеюсь, это поможет вам решить проблему с перехватом submit всех форм на странице. Удачи!
Для того чтобы перехватить submit всех форм на странице, включая динамически созданные формы, можно использовать делегирование событий через метод on() в jQuery.
Вот пример кода, который позволит перехватить submit всех форм, даже динамически созданных:
$(document).on('submit', 'form', function() {var form_data = $(this).serializeArray();
form_data.push({name:'cbk_sites_conf_id', value:cbk_sites_conf_id});
form_data.push({name:'site', value:cbk_site});
form_data.push({name:'pre_referrer', value:localStorage.first_refferer});
$.post('//example.com/widget/cbk_vizov', form_data);
// Можно добавить дополнительные действия здесь
return false; // Чтобы предотвратить отправку формы по умолчанию
});
Этот код будет перехватывать событие submit у всех форм на странице, включая динамически созданные. Важно помнить, что необходимо подключить jQuery перед исполнением этого кода.
Надеюсь, это поможет вам решить проблему с перехватом submit всех форм на странице. Удачи!