mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-01 11:39:41 +08:00
form wip
This commit is contained in:
@ -123,7 +123,7 @@
|
||||
},
|
||||
|
||||
submitForm: function () {
|
||||
var $form = $(this),
|
||||
var $form = this,
|
||||
data = $form.data('yiiActiveForm');
|
||||
if (data.validated) {
|
||||
// continue submitting the form since validation passes
|
||||
@ -142,7 +142,7 @@
|
||||
hasError = updateInput($form, this, messages) || hasError;
|
||||
});
|
||||
updateSummary($form, messages);
|
||||
if (!data.settings.afterValidate || data.settings.afterValidate($form, data, hasError)) {
|
||||
if (!data.settings.afterValidate || data.settings.afterValidate($form, messages, hasError)) {
|
||||
if (!hasError) {
|
||||
data.validated = true;
|
||||
var $button = data.submitObject || $form.find(':submit:first');
|
||||
@ -167,7 +167,7 @@
|
||||
},
|
||||
|
||||
resetForm: function () {
|
||||
var $form = $(this);
|
||||
var $form = this;
|
||||
var data = $form.data('yiiActiveForm');
|
||||
// Because we bind directly to a form reset event instead of a reset button (that may not exist),
|
||||
// when this function is executed form input values have not been reset yet.
|
||||
@ -190,26 +190,6 @@
|
||||
}
|
||||
};
|
||||
|
||||
var getValue = function ($form, attribute) {
|
||||
var $input = findInput($form, attribute);
|
||||
var type = $input.attr('type');
|
||||
if (type === 'checkbox' || type === 'radio') {
|
||||
return $input.filter(':checked').val();
|
||||
} else {
|
||||
return $input.val();
|
||||
}
|
||||
};
|
||||
|
||||
var findInput = function ($form, attribute) {
|
||||
var $input = $form.find(attribute.input);
|
||||
if ($input.length && $input[0].tagName.toLowerCase() === 'div') {
|
||||
// checkbox list or radio list
|
||||
return $input.find('input');
|
||||
} else {
|
||||
return $input;
|
||||
}
|
||||
};
|
||||
|
||||
var watchAttributes = function ($form, attributes) {
|
||||
$.each(attributes, function (i, attribute) {
|
||||
var $input = findInput($form, attribute);
|
||||
@ -304,6 +284,9 @@
|
||||
});
|
||||
|
||||
if (needAjaxValidation && (!data.submitting || $.isEmptyObject(messages))) {
|
||||
// Perform ajax validation when at least one input needs it.
|
||||
// If the validation is triggered by form submission, ajax validation
|
||||
// should be done only when all inputs pass client validation
|
||||
var $button = data.submitObject,
|
||||
extData = '&' + data.settings.ajaxVar + '=' + $form.attr('id');
|
||||
if ($button && $button.length && $button.attr('name')) {
|
||||
@ -389,4 +372,24 @@
|
||||
}
|
||||
};
|
||||
|
||||
var getValue = function ($form, attribute) {
|
||||
var $input = findInput($form, attribute);
|
||||
var type = $input.attr('type');
|
||||
if (type === 'checkbox' || type === 'radio') {
|
||||
return $input.filter(':checked').val();
|
||||
} else {
|
||||
return $input.val();
|
||||
}
|
||||
};
|
||||
|
||||
var findInput = function ($form, attribute) {
|
||||
var $input = $form.find(attribute.input);
|
||||
if ($input.length && $input[0].tagName.toLowerCase() === 'div') {
|
||||
// checkbox list or radio list
|
||||
return $input.find('input');
|
||||
} else {
|
||||
return $input;
|
||||
}
|
||||
};
|
||||
|
||||
})(window.jQuery);
|
||||
Reference in New Issue
Block a user