select: fix el.form.change emission

pull/7343/head
wacky6.AriesMBP 2017-10-02 04:44:58 +11:00 committed by 杨奕
parent 2f2405a64a
commit 0ec3bea9b0
2 changed files with 13 additions and 14 deletions

View File

@ -269,7 +269,6 @@
if (this.filterable && !this.multiple) { if (this.filterable && !this.multiple) {
this.inputLength = 20; this.inputLength = 20;
} }
this.dispatch('ElFormItem', 'el.form.change', val);
}, },
visible(val) { visible(val) {
@ -395,6 +394,7 @@
emitChange(val) { emitChange(val) {
if (!valueEquals(this.value, val)) { if (!valueEquals(this.value, val)) {
this.$emit('change', val); this.$emit('change', val);
this.dispatch('ElFormItem', 'el.form.change', val);
} }
}, },

View File

@ -320,7 +320,7 @@ describe('Form', () => {
<el-form-item label="记住密码" prop="region" ref="field"> <el-form-item label="记住密码" prop="region" ref="field">
<el-select v-model="form.region" placeholder="请选择活动区域"> <el-select v-model="form.region" placeholder="请选择活动区域">
<el-option label="区域一" value="shanghai"></el-option> <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> <el-option label="区域二" ref="opt" value="beijing"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -328,7 +328,7 @@ describe('Form', () => {
data() { data() {
return { return {
form: { form: {
region: 'shanghai' region: ''
}, },
rules: { rules: {
region: [ region: [
@ -336,24 +336,23 @@ describe('Form', () => {
] ]
} }
}; };
},
methods: {
setValue(value) {
this.form.region = value;
}
} }
}, true); }, true);
vm.$refs.form.validate(valid => { vm.$refs.form.validate(valid => {
let field = vm.$refs.field; let field = vm.$refs.field;
expect(valid).to.true; expect(valid).to.false;
vm.setValue('');
setTimeout(_ => { setTimeout(_ => {
expect(field.validateMessage).to.equal('请选择活动区域'); expect(field.validateMessage).to.equal('请选择活动区域');
vm.setValue('shanghai'); // programatic modification of bound value does not triggers change validation
vm.form.region = 'shanghai';
setTimeout(_ => { setTimeout(_ => {
expect(field.validateMessage).to.equal(''); expect(field.validateMessage).to.equal('请选择活动区域');
done(); // user modification of bound value triggers change validation
vm.$refs.opt.$el.click();
setTimeout(_ => {
expect(field.validateMessage).to.equal('');
done();
}, 100);
}, 100); }, 100);
}, 100); }, 100);
}); });