Commit d30ca6d1 by aleksandr

beforeSubmit function after global validation all fields forms

parent ec0e348a
...@@ -127,6 +127,13 @@ ...@@ -127,6 +127,13 @@
var $form = $(this), var $form = $(this),
data = $form.data('yiiActiveForm'); data = $form.data('yiiActiveForm');
if (data.validated) { if (data.validated) {
if (data.settings.beforeSubmit !== undefined) {
if (data.settings.beforeSubmit($form) == false) {
data.validated = false;
data.submitting = false;
return false;
}
}
// continue submitting the form since validation passes // continue submitting the form since validation passes
return true; return true;
} }
...@@ -135,40 +142,36 @@ ...@@ -135,40 +142,36 @@
clearTimeout(data.settings.timer); clearTimeout(data.settings.timer);
} }
data.submitting = true; data.submitting = true;
if (!data.settings.beforeSubmit || data.settings.beforeSubmit($form)) { validate($form, function (messages) {
validate($form, function (messages) { var errors = [];
var errors = []; $.each(data.attributes, function () {
$.each(data.attributes, function () { if (updateInput($form, this, messages)) {
if (updateInput($form, this, messages)) { errors.push(this.input);
errors.push(this.input);
}
});
updateSummary($form, messages);
if (errors.length) {
var top = $form.find(errors.join(',')).first().offset().top;
var wtop = $(window).scrollTop();
if (top < wtop || top > wtop + $(window).height) {
$(window).scrollTop(top);
}
} else {
data.validated = true;
var $button = data.submitObject || $form.find(':submit:first');
// TODO: if the submission is caused by "change" event, it will not work
if ($button.length) {
$button.click();
} else {
// no submit button in the form
$form.submit();
}
return;
} }
data.submitting = false;
}, function () {
data.submitting = false;
}); });
} else { updateSummary($form, messages);
if (errors.length) {
var top = $form.find(errors.join(',')).first().offset().top;
var wtop = $(window).scrollTop();
if (top < wtop || top > wtop + $(window).height) {
$(window).scrollTop(top);
}
} else {
data.validated = true;
var $button = data.submitObject || $form.find(':submit:first');
// TODO: if the submission is caused by "change" event, it will not work
if ($button.length) {
$button.click();
} else {
// no submit button in the form
$form.submit();
}
return;
}
data.submitting = false; data.submitting = false;
} }, function () {
data.submitting = false;
});
return false; return false;
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment