Commit d8d4dfed authored by hetech's avatar hetech Committed by GitHub

DatePicker: add validate-event attribute (#13531)

parent 96d787da
...@@ -495,6 +495,7 @@ When picking a date range, you can assign the time part for start date and end d ...@@ -495,6 +495,7 @@ When picking a date range, you can assign the time part for start date and end d
| unlink-panels | unlink two date-panels in range-picker | boolean | — | false | | unlink-panels | unlink two date-panels in range-picker | boolean | — | false |
| prefix-icon | Custom prefix icon class | string | — | el-icon-date | | prefix-icon | Custom prefix icon class | string | — | el-icon-date |
| clear-icon | Custom clear icon class | string | — | el-icon-circle-close | | clear-icon | Custom clear icon class | string | — | el-icon-circle-close |
| validate-event | whether to trigger form validation | boolean | - | true |
### Picker Options ### Picker Options
| Attribute | Description | Type | Accepted Values | Default | | Attribute | Description | Type | Accepted Values | Default |
......
...@@ -666,7 +666,7 @@ Search data from server-side. ...@@ -666,7 +666,7 @@ Search data from server-side.
|form | same as `form` in native input | string | — | — | |form | same as `form` in native input | string | — | — |
| label | label text | string | — | — | | label | label text | string | — | — |
| tabindex | input tabindex | string | - | - | | tabindex | input tabindex | string | - | - |
| validate-event | whether to trigger form validation | boolean | - | - | | validate-event | whether to trigger form validation | boolean | - | true |
### Input slots ### Input slots
......
...@@ -301,7 +301,8 @@ DateTimePicker se deriva de DatePicker y TimePicker. Por una explicación más d ...@@ -301,7 +301,8 @@ DateTimePicker se deriva de DatePicker y TimePicker. Por una explicación más d
| name | igual que `name` en la entrada nativa | string | — | — | | name | igual que `name` en la entrada nativa | string | — | — |
| unlink-panels | desconectar dos date-panels en range-picker | boolean | — | false | | unlink-panels | desconectar dos date-panels en range-picker | boolean | — | false |
| prefix-icon | Clase personalizada para el icono prefijado | string | — | el-icon-date | | prefix-icon | Clase personalizada para el icono prefijado | string | — | el-icon-date |
| clear-icon | Clase personalizada para el icono `clear` | string | — | el-icon-circle-close | | clear-icon | Clase personalizada para el icono `clear` | string | — | el-icon-circle-close |
| validate-event | whether to trigger form validation | boolean | - | true |
### Picker Options ### Picker Options
| Atributo | Descripción | Tipo | Valores aceptados | Por defecto | | Atributo | Descripción | Tipo | Valores aceptados | Por defecto |
......
...@@ -704,7 +704,7 @@ Búsqueda de datos desde el servidor. ...@@ -704,7 +704,7 @@ Búsqueda de datos desde el servidor.
| suffix-icon | suffix icon class | string | — | — | | suffix-icon | suffix icon class | string | — | — |
| hide-loading | si se debe ocultar el icono de loading en la búsqueda remota | boolean | — | false | | hide-loading | si se debe ocultar el icono de loading en la búsqueda remota | boolean | — | false |
| popper-append-to-body | si añadir el desplegable al cuerpo. Si la posición del menú desplegable es incorrecta, puede intentar establecer este prop a false | boolean | - | true | | popper-append-to-body | si añadir el desplegable al cuerpo. Si la posición del menú desplegable es incorrecta, puede intentar establecer este prop a false | boolean | - | true |
| validate-event | si se debe lanzar la validación de formulario | boolean | - | - | | validate-event | si se debe lanzar la validación de formulario | boolean | - | true |
### Autocomplete Slots ### Autocomplete Slots
......
...@@ -450,6 +450,7 @@ ...@@ -450,6 +450,7 @@
| unlink-panels | 在范围选择器里取消两个日期面板之间的联动 | boolean | — | false | | unlink-panels | 在范围选择器里取消两个日期面板之间的联动 | boolean | — | false |
| prefix-icon | 自定义头部图标的类名 | string | — | el-icon-date | | prefix-icon | 自定义头部图标的类名 | string | — | el-icon-date |
| clear-icon | 自定义清空图标的类名 | string | — | el-icon-circle-close | | clear-icon | 自定义清空图标的类名 | string | — | el-icon-circle-close |
| validate-event | 输入时是否触发表单的校验 | boolean | - | true |
### Picker Options ### Picker Options
| 参数 | 说明 | 类型 | 可选值 | 默认值 | | 参数 | 说明 | 类型 | 可选值 | 默认值 |
......
...@@ -822,7 +822,7 @@ export default { ...@@ -822,7 +822,7 @@ export default {
| form | 原生属性 | string | — | — | | form | 原生属性 | string | — | — |
| label | 输入框关联的label文字 | string | — | — | | label | 输入框关联的label文字 | string | — | — |
| tabindex | 输入框的tabindex | string | - | - | | tabindex | 输入框的tabindex | string | - | - |
| validate-event | 输入时是否触发表单的校验 | boolean | - | - | | validate-event | 输入时是否触发表单的校验 | boolean | - | true |
### Input Slots ### Input Slots
| name | 说明 | | name | 说明 |
......
...@@ -386,7 +386,11 @@ export default { ...@@ -386,7 +386,11 @@ export default {
default: '-' default: '-'
}, },
pickerOptions: {}, pickerOptions: {},
unlinkPanels: Boolean unlinkPanels: Boolean,
validateEvent: {
type: Boolean,
default: true
}
}, },
components: { ElInput }, components: { ElInput },
...@@ -413,7 +417,9 @@ export default { ...@@ -413,7 +417,9 @@ export default {
this.hidePicker(); this.hidePicker();
this.emitChange(this.value); this.emitChange(this.value);
this.userInput = null; this.userInput = null;
this.dispatch('ElFormItem', 'el.form.blur'); if (this.validateEvent) {
this.dispatch('ElFormItem', 'el.form.blur');
}
this.$emit('blur', this); this.$emit('blur', this);
this.blur(); this.blur();
} }
...@@ -433,7 +439,7 @@ export default { ...@@ -433,7 +439,7 @@ export default {
} }
}, },
value(val, oldVal) { value(val, oldVal) {
if (!valueEquals(val, oldVal) && !this.pickerVisible) { if (!valueEquals(val, oldVal) && !this.pickerVisible && this.validateEvent) {
this.dispatch('ElFormItem', 'el.form.change', val); this.dispatch('ElFormItem', 'el.form.change', val);
} }
} }
...@@ -897,8 +903,10 @@ export default { ...@@ -897,8 +903,10 @@ export default {
// determine user real change only // determine user real change only
if (!valueEquals(val, this.valueOnOpen)) { if (!valueEquals(val, this.valueOnOpen)) {
this.$emit('change', val); this.$emit('change', val);
this.dispatch('ElFormItem', 'el.form.change', val);
this.valueOnOpen = val; this.valueOnOpen = val;
if (this.validateEvent) {
this.dispatch('ElFormItem', 'el.form.change', val);
}
} }
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment