Перехват 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(); });