Перехват submit'a формы и отправка данных через ajax
Пример фунции для работы с формой компонента RSForm:
function sendForm() {
jQuery('form').submit(function(e){
e.preventDefault();
var form = jQuery(this);
var m_method=form.attr('method');
var m_action=form.attr('action');
var m_action='index.php?option=com_forme&fid=1&tmpl=component';
var m_data=form.serialize();
form.find("input[type=submit]").attr('disabled', true);
jQuery.ajax({
type: m_method,
url: m_action,
data: m_data,
beforeSend: function(){
jQuery('#fprogress').show();
},
success: function(request){
jQuery('#fprogress').hide();
var res = request.replace(/\n/g,' ').replace(/\r/g,'').match(/<body.*body>/ig);
res = jQuery('<div></div>').html(res[0]);
form.html(res.find('div.thankyou,form').html());
form.find("input[type='submit']").attr('disabled', false);
},
complete: function(){
jQuery('#fprogress').hide();
}
});
});
}
Более подробно о доступных опциях см. Мануал по jQuery.ajax(options)
Управление индикатором советуют делать так:
$('#loading_indicator')
.ajaxStart(function() { $(this).show(); })
.ajaxStop(function() { $(this).hide(); });
