mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-01 20:19:42 +08:00
committed by
Alexander Makarov
parent
7c76696905
commit
cfe0bf5cf1
@ -4,6 +4,7 @@ Yii Framework 2 Change Log
|
||||
2.0.16 under development
|
||||
------------------------
|
||||
|
||||
- Bug #14039, #16636: Fixed validation for disabled inputs (s1lver, omzy83)
|
||||
- Bug #16425: Check for additional values for disabled confirm dialog (Alex-Code, s1lver)
|
||||
- Enh #14367: In `yii\db\mysql\QueryBuilder` added support fractional seconds for time types for MySQL >= 5.6.4 (konstantin-vl)
|
||||
- Bug #16766: `yii\filters\ContentNegotiator` was not setting `Vary` header to inform cache recipients (koteq, cebe, samdark)
|
||||
|
||||
@ -325,7 +325,7 @@
|
||||
// client-side validation
|
||||
$.each(data.attributes, function () {
|
||||
this.$form = $form;
|
||||
if (!$(this.input).is(":disabled")) {
|
||||
if (!findInput($form, this).is(":disabled")) {
|
||||
this.cancelled = false;
|
||||
// perform validation only if the form is being submitted or if an attribute is pending validation
|
||||
if (data.submitting || this.status === 2 || this.status === 3) {
|
||||
@ -489,7 +489,6 @@
|
||||
updateInput($(this), attribute, msg);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
var watchAttribute = function ($form, attribute) {
|
||||
@ -625,8 +624,9 @@
|
||||
|
||||
if (submitting) {
|
||||
var errorAttributes = [];
|
||||
var $input = findInput($form, this);
|
||||
$.each(data.attributes, function () {
|
||||
if (!$(this.input).is(":disabled") && !this.cancelled && updateInput($form, this, messages)) {
|
||||
if (!$input.is(":disabled") && !this.cancelled && updateInput($form, this, messages)) {
|
||||
errorAttributes.push(this);
|
||||
}
|
||||
});
|
||||
|
||||
@ -1,3 +1,37 @@
|
||||
<form id="w0">
|
||||
<input id="name" type="text" name="name" value="">
|
||||
</form>
|
||||
|
||||
<form id="w1">
|
||||
<fieldset disabled="">
|
||||
<div class="form-group required">
|
||||
<label class="control-label" for="test_text">Test text</label>
|
||||
<input type="text" id="test_text" class="form-control" name="Test[text]" aria-required="true">
|
||||
<div class="help-block"></div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset disabled="">
|
||||
<div class="form-group required">
|
||||
<label class="control-label">Test radio</label>
|
||||
<input type="hidden" name="Test[radio]" value="">
|
||||
<div id="test_radio" aria-required="true">
|
||||
<label><input type="radio" name="Test[radio]" value="1"> Test1</label>
|
||||
<label><input type="radio" name="Test[radio]" value="0"> Test2</label>
|
||||
</div>
|
||||
<div class="help-block"></div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset disabled="">
|
||||
<div class="form-group required">
|
||||
<label class="control-label">Test checkbox</label>
|
||||
<input type="hidden" name="Test[checkbox]" value="">
|
||||
<div id="test_checkbox" aria-required="true">
|
||||
<label><input type="checkbox" name="Test[checkbox][]" value="1"> Test1</label>
|
||||
<label><input type="checkbox" name="Test[checkbox][]" value="0"> Test2</label>
|
||||
</div>
|
||||
<div class="help-block"></div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
@ -78,6 +78,32 @@ describe('yii.activeForm', function () {
|
||||
assert.isTrue(afterValidateSpy.calledOnce);
|
||||
});
|
||||
});
|
||||
|
||||
describe('with disabled fields', function () {
|
||||
var inputTypes = {
|
||||
test_radio: 'radioList',
|
||||
test_checkbox: 'checkboxList',
|
||||
test_text: 'text input'
|
||||
};
|
||||
|
||||
for (var key in inputTypes) {
|
||||
if (inputTypes.hasOwnProperty(key)) {
|
||||
(function () {
|
||||
var inputId = key;
|
||||
it(inputTypes[key] + ' disabled field', function () {
|
||||
$activeForm = $('#w1');
|
||||
$activeForm.yiiActiveForm({
|
||||
id: inputId,
|
||||
input: '#' + inputId
|
||||
});
|
||||
$activeForm.yiiActiveForm('validate');
|
||||
|
||||
assert.isFalse($activeForm.data('yiiActiveForm').validated);
|
||||
});
|
||||
})();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('resetForm method', function () {
|
||||
|
||||
Reference in New Issue
Block a user