Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
(function($) {
$.enhanceFormsBehaviour = function() {
$('form').enhanceBehaviour();
}
$.fn.enhanceBehaviour = function() {
return this.each(function() {
var submits = $(this).find(':submit');
submits.click(function() {
var hidden = document.createElement('input');
hidden.type = 'hidden';
hidden.name = this.name;
hidden.value = this.value;
this.parentNode.insertBefore(hidden, this)
});
$(this).submit(function() {
submits.attr("disabled", "disabled");
});
$(window).unload(function() {
submits.removeAttr("disabled");
})
});
}
})(jQuery);formUploader.prepareForm(document.getElementById('the_form')); нужно написать $.enhanceFormsBehaviour():submit ловит не только инпуты-сабмиты, но и баттоны-сабмиты.form.onsubmit и window.onunload. Это сделано опять же для легкости чтения. По-правильному надо бы добавлять такие обрабтчики через специальные пользовательские функции, типа addEvent(form, 'submit', myFuntion), чтобы не вступить в конфликт с другими возможными функциями, привязанными к тому же событию…// при уходе со страницы — по шлобальному событию onunload
Тонкости свойства disable у кнопок формы, отправляемой на сервер (Как делать кнопки неактивными)