Skip to content

Commit 61f0448

Browse files
committed
Merge pull request #336 from MoonScript/speed-up-form-novalidate
Speed up submit for [novalidate] and [data-remote!=true] forms
2 parents be6f905 + cb7d4df commit 61f0448

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/rails.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -340,17 +340,21 @@
340340
$document.delegate(rails.formSubmitSelector, 'submit.rails', function(e) {
341341
var form = $(this),
342342
remote = form.data('remote') !== undefined,
343-
blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector),
344-
nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector);
343+
blankRequiredInputs,
344+
nonBlankFileInputs;
345345

346346
if (!rails.allowAction(form)) return rails.stopEverything(e);
347347

348348
// skip other logic when required values are missing or file upload is present
349-
if (blankRequiredInputs && form.attr("novalidate") == undefined && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) {
350-
return rails.stopEverything(e);
349+
if (form.attr('novalidate') == undefined) {
350+
blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector);
351+
if (blankRequiredInputs && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) {
352+
return rails.stopEverything(e);
353+
}
351354
}
352355

353356
if (remote) {
357+
nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector);
354358
if (nonBlankFileInputs) {
355359
// slight timeout so that the submit button gets properly serialized
356360
// (make it easy for event handler to serialize form without disabled values)

0 commit comments

Comments
 (0)