|
70 | 70 |
|
71 | 71 | var methods = {
|
72 | 72 | submit: function (data) {
|
73 |
| - var daf = this.data('daf-data') |
| 73 | + var daf = this.data('daf-data'); |
74 | 74 | if (daf) {
|
75 | 75 | daf.submit(data);
|
76 | 76 | }
|
|
86 | 86 | cacheFilesAttr: "[data-ajax-submit-cachefiles]",
|
87 | 87 | canSubmitFn: null,
|
88 | 88 | onRenderErrorFn: null,
|
| 89 | + handleSubmitEvent: true, |
89 | 90 | }, $.fn.djangoAjaxForms.defaults, options);
|
90 | 91 |
|
91 | 92 | function DjangoAjaxForms($form)
|
92 | 93 | {
|
| 94 | + this.$form = $form; |
| 95 | + this.$form.data('daf-data', this); |
93 | 96 |
|
94 |
| - $form.data('daf-data', this); |
95 |
| - |
96 |
| - var self = this, |
97 |
| - canSubmit = true; |
| 97 | + if (opts.handleSubmitEvent) { |
| 98 | + var self = this, |
| 99 | + canSubmit = true; |
98 | 100 |
|
99 |
| - this.$form = $form; |
100 |
| - this.$form.on('submit', function(e) { |
101 |
| - e.preventDefault(); |
| 101 | + this.$form.on('submit', function(e) { |
| 102 | + e.preventDefault(); |
102 | 103 |
|
103 |
| - if ( $.isFunction( opts.canSubmitFn ) ) { |
104 |
| - canSubmit = opts.canSubmitFn(self.$form); |
105 |
| - } |
| 104 | + if ( $.isFunction( opts.canSubmitFn ) ) { |
| 105 | + canSubmit = opts.canSubmitFn(self.$form); |
| 106 | + } |
106 | 107 |
|
107 |
| - if (self.$form.length > 0 && canSubmit) { |
108 |
| - self.submit(); |
109 |
| - } |
110 |
| - }); |
| 108 | + if (self.$form.length > 0 && canSubmit) { |
| 109 | + self.submit(); |
| 110 | + } |
| 111 | + }); |
| 112 | + } |
111 | 113 |
|
112 | 114 | if (this.$form.filter(opts.cacheFilesAttr).length) {
|
113 | 115 | this.cachedFiles = new ManageCacheFile(this.$form);
|
|
122 | 124 | data: data,
|
123 | 125 | method: 'POST',
|
124 | 126 | dataType: 'json'
|
125 |
| - } |
| 127 | + }; |
126 | 128 |
|
127 | 129 | if ( !isCustomData ) {
|
128 | 130 | options.contentType = false;
|
|
200 | 202 | nonfielderror = true;
|
201 | 203 | } else {
|
202 | 204 | var $field = $form.find("#" + opts.fieldIdSelector + fieldName);
|
| 205 | + |
203 | 206 | var onChange = function () {
|
204 | 207 | $field.removeClass('error', 200).find('.errorlist').fadeOut(200, function () {
|
205 | 208 | $(this).remove();
|
|
246 | 249 | } else if ( typeof options === 'object' || ! options ) {
|
247 | 250 | return this.each(function()
|
248 | 251 | {
|
249 |
| - new DjangoAjaxForms($(this)); |
| 252 | + var $this = $(this); |
| 253 | + var daf = $this.data('daf-data'); |
| 254 | + |
| 255 | + if (!daf) { |
| 256 | + new DjangoAjaxForms($this); |
| 257 | + } |
250 | 258 | });
|
251 | 259 | } else {
|
252 | 260 | $.error( 'Method ' + options + ' does not exist.' );
|
|
0 commit comments