mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-01 03:26:36 +08:00
beforeSubmit function after global validation all fields forms
This commit is contained in:
@ -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 @@
|
|||||||
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;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user