mirror of https://github.com/ElemeFE/element
DatePicker: nuke invalid input on close (#10749)
parent
1f4adb7c08
commit
d8f861e929
|
@ -390,12 +390,7 @@ export default {
|
|||
} else {
|
||||
this.hidePicker();
|
||||
this.emitChange(this.value);
|
||||
// flush user input if it is parsable
|
||||
// this.displayValue here is not a typo, it merges text for both panels in range mode
|
||||
const parsedValue = this.parseString(this.displayValue);
|
||||
if (this.userInput && parsedValue && this.isValidValue(parsedValue)) {
|
||||
this.userInput = null;
|
||||
}
|
||||
this.dispatch('ElFormItem', 'el.form.blur');
|
||||
this.$emit('blur', this);
|
||||
this.blur();
|
||||
|
|
|
@ -261,6 +261,33 @@ describe('DatePicker', () => {
|
|||
}, DELAY);
|
||||
});
|
||||
|
||||
it('nuke invalid input on close', done => {
|
||||
vm = createVue({
|
||||
template: '<el-date-picker v-model="value" value-format="yyyy-MM-dd" ref="compo" />',
|
||||
data() {
|
||||
return {
|
||||
value: '2010-10-01'
|
||||
};
|
||||
}
|
||||
}, true);
|
||||
|
||||
const compo = vm.$refs.compo;
|
||||
const input = compo.$el.querySelector('input');
|
||||
input.blur();
|
||||
input.focus();
|
||||
|
||||
setTimeout(_ => {
|
||||
compo.userInput = 'abc';
|
||||
compo.handleChange(); // simplified test
|
||||
compo.handleClose();
|
||||
setTimeout(_ => {
|
||||
expect(input.value).to.equal('2010-10-01');
|
||||
expect(vm.value).to.equal('2010-10-01');
|
||||
done();
|
||||
}, DELAY);
|
||||
}, DELAY);
|
||||
});
|
||||
|
||||
it('select datetime with defaultTime', done => {
|
||||
vm = createVue({
|
||||
template: `
|
||||
|
|
Loading…
Reference in New Issue