На моей странице я использую форму, которая при отправке должна получить дополнительные скрытые поля.Проблема, однако, в том, что я не могу знать ни имя / идентификатор формы, ни кнопку отправки, поэтому я не могу использовать такие функции, как onClick и т. Д. Поэтому я использую событие beforeunload, чтобы вызвать событие, когда пользователь пытается выйтистраница (это включает в себя отправку формы).Я использую document.activeElement, чтобы выяснить, что вызвало событие, и, если это форма / отправить, я добавляю скрытые поля в форму.
Удаляя код, он сводится к чему-то вроде этого:
var javascriptData = ['val1','val2','val3']; // usually gets values dynamically and can differ in size
$(window).bind('beforeunload', function(e) {
var activeForm = document.activeElement.form;
for(var i = 0; i < javascriptData.length; i++){
$(activeForm).append('<input type="hidden" name="test-data[]" value="'+javascriptData[i]+'" />');
}
return false; // just for debug purposes.
}
Код работает, и элемент добавляется в форму, но он не отображается в $ _POST на следующей странице.Однако последняя строка кода (возвращаемое значение false) создает всплывающее окно с вопросом, хочу ли я покинуть страницу, если я останусь на странице, снова нажмите кнопку отправки и , затем выйдите из страницы и проверьте$ _POST, поле есть.Я предполагаю, что данные для $ _POST собираются до запуска функции beforeunload.
Мой вопрос: «Есть ли способ обойти это, чтобы я мог добавить скрытое поле к форме в событии beforeunload?».
Помощь очень ценится, заранее спасибо.