|
15 | 15 | if ( $.rails !== undefined ) { |
16 | 16 | $.error('jquery-ujs has already been loaded!'); |
17 | 17 | } |
18 | | - |
| 18 | + |
19 | 19 | // Shorthand to make it a little easier to call public rails functions from within rails.js |
20 | 20 | var rails; |
21 | 21 | var $document = $(document); |
|
182 | 182 | form.hide().append(metadataInput).appendTo('body'); |
183 | 183 | form.submit(); |
184 | 184 | }, |
185 | | - |
| 185 | + |
| 186 | + // Helper function that returns form elements that match the specified CSS selector |
| 187 | + // If form is actually a "form" element this will return associated elements outside the from that have |
| 188 | + // the html form attribute set |
| 189 | + formElements: function(form, selector) { |
| 190 | + return form.is('form') ? $(form[0].elements).filter(selector) : form.find(selector) |
| 191 | + }, |
| 192 | + |
186 | 193 | /* Disables form elements: |
187 | 194 | - Caches element value in 'ujs:enable-with' data store |
188 | 195 | - Replaces element text with value of 'data-disable-with' attribute |
189 | 196 | - Sets disabled property to true |
190 | 197 | */ |
191 | 198 | disableFormElements: function(form) { |
192 | | - var elements = form.is('form') ? $(form[0].elements).filter(rails.disableSelector) : form.find(rails.disableSelector); |
193 | | - elements.each(function() { |
| 199 | + rails.formElements(form, rails.disableSelector).each(function() { |
194 | 200 | var element = $(this), method = element.is('button') ? 'html' : 'val'; |
195 | 201 | element.data('ujs:enable-with', element[method]()); |
196 | 202 | element[method](element.data('disable-with')); |
|
203 | 209 | - Sets disabled property to false |
204 | 210 | */ |
205 | 211 | enableFormElements: function(form) { |
206 | | - var elements = form.is('form') ? $(form[0].elements).filter(rails.enableSelector) : form.find(rails.enableSelector); |
207 | | - elements.each(function() { |
| 212 | + rails.formElements(form, rails.enableSelector).each(function() { |
208 | 213 | var element = $(this), method = element.is('button') ? 'html' : 'val'; |
209 | 214 | if (element.data('ujs:enable-with')) element[method](element.data('ujs:enable-with')); |
210 | 215 | element.prop('disabled', false); |
|
0 commit comments