910 if (!ams.form._checkSubmitValidators(form)) |
910 if (!ams.form._checkSubmitValidators(form)) |
911 return false; |
911 return false; |
912 // Remove remaining status messages |
912 // Remove remaining status messages |
913 $('.alert, SPAN.state-error', form).remove(); |
913 $('.alert, SPAN.state-error', form).remove(); |
914 $('.state-error', form).removeClassPrefix('state-'); |
914 $('.state-error', form).removeClassPrefix('state-'); |
915 $(form.data('ams-submit-button')).button('loading'); |
915 // Check submit button |
|
916 var button = $(form.data('ams-submit-button')); |
|
917 if (button) |
|
918 button.button('loading'); |
916 ams.ajax.check($.fn.ajaxSubmit, |
919 ams.ajax.check($.fn.ajaxSubmit, |
917 ams.baseURL + 'ext/jquery-form-3.49' + (ams.devmode ? '.js' : '.min.js'), |
920 ams.baseURL + 'ext/jquery-form-3.49' + (ams.devmode ? '.js' : '.min.js'), |
918 function() { |
921 function() { |
919 |
922 |
920 function _submitAjaxForm(form, options) { |
923 function _submitAjaxForm(form, options) { |
935 form_data = ams.executeFunctionByName(form_data_callback, form); |
938 form_data = ams.executeFunctionByName(form_data_callback, form); |
936 } else { |
939 } else { |
937 form_data = data.amsFormData || {}; |
940 form_data = data.amsFormData || {}; |
938 } |
941 } |
939 |
942 |
|
943 var button = $(form.data('ams-submit-button')); |
|
944 var buttonHandler, |
|
945 buttonTarget; |
|
946 if (button) { |
|
947 buttonHandler = button.data('ams-form-handler'); |
|
948 buttonTarget = button.data('ams-form-submit-target'); |
|
949 } |
|
950 |
940 var action = form.attr('action').replace(/#/, ''); |
951 var action = form.attr('action').replace(/#/, ''); |
941 if (action.startsWith(window.location.protocol)) |
952 if (action.startsWith(window.location.protocol)) |
942 var url = action; |
953 var url = action; |
943 else |
954 else |
944 url = ams.ajax.getAddr() + action; |
955 url = ams.ajax.getAddr() + action; |
945 var button = $(form.data('ams-submit-button')); |
956 url += handler || buttonHandler || data.amsFormHandler || ''; |
946 url += handler || button.data('ams-button-handler') || data.amsFormHandler || ''; |
|
947 |
957 |
948 if (data.amsFormInitSubmitTarget) { |
958 if (data.amsFormInitSubmitTarget) { |
949 var target = $(button.data('ams-form-submit-target') || data.amsFormSubmitTarget || '#content'); |
959 var target = $(buttonTarget || data.amsFormSubmitTarget || '#content'); |
950 ams.executeFunctionByName(data.amsFormInitSubmit || 'MyAMS.form.initSubmit', form, target); |
960 ams.executeFunctionByName(data.amsFormInitSubmit || 'MyAMS.form.initSubmit', form, target); |
951 } else if (!data.amsFormHideSubmitFooter) |
961 } else if (!data.amsFormHideSubmitFooter) |
952 ams.executeFunctionByName(data.amsFormInitSubmit || 'MyAMS.form.initSubmitFooter', form); |
962 ams.executeFunctionByName(data.amsFormInitSubmit || 'MyAMS.form.initSubmitFooter', form); |
953 |
963 |
954 var hasUpload = typeof(options.uuid) != 'undefined'; |
964 var hasUpload = typeof(options.uuid) != 'undefined'; |
978 if (button) |
988 if (button) |
979 button.button('reset'); |
989 button.button('reset'); |
980 ams.form.finalizeSubmitFooter.call(form); |
990 ams.form.finalizeSubmitFooter.call(form); |
981 } |
991 } |
982 form.data('submitted', false); |
992 form.data('submitted', false); |
|
993 form.removeData('ams-submit-button'); |
983 }, |
994 }, |
984 success: function(result, status, request, form) { |
995 success: function(result, status, request, form) { |
985 var callback; |
996 var callback; |
986 var button = form.data('ams-submit-button'); |
997 var button = form.data('ams-submit-button'); |
987 if (button) |
998 if (button) |
990 callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback; |
1001 callback = ams.getFunctionByName(data.amsFormSubmitCallback) || ams.form._submitCallback; |
991 callback.call(form, result, status, request, form); |
1002 callback.call(form, result, status, request, form); |
992 if (form.is(':visible') && button) |
1003 if (form.is(':visible') && button) |
993 button.button('reset'); |
1004 button.button('reset'); |
994 form.data('submitted', false); |
1005 form.data('submitted', false); |
|
1006 form.removeData('ams-submit-button'); |
995 }, |
1007 }, |
996 iframe: hasUpload |
1008 iframe: hasUpload |
997 } |
1009 } |
998 var settings = $.extend({}, defaults, options, form_options, submit_options); |
1010 var settings = $.extend({}, defaults, options, form_options, submit_options); |
999 $(form).ajaxSubmit(settings); |
1011 $(form).ajaxSubmit(settings); |