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