Merge pull request #3460 from nickrum/input-null-fix

Reset value of v-input to NULL if input is empty
This commit is contained in:
Rijk van Zanten
2021-01-13 15:27:16 -07:00
committed by GitHub
4 changed files with 31 additions and 0 deletions

View File

@@ -84,6 +84,10 @@ export default defineComponent({
type: [String, Number],
default: null,
},
nullable: {
type: Boolean,
default: true,
},
slug: {
type: Boolean,
default: false,
@@ -197,6 +201,11 @@ export default defineComponent({
function emitValue(event: InputEvent) {
let value = (event.target as HTMLInputElement).value;
if (props.nullable === true && value === '') {
emit('input', null);
return;
}
if (props.type === 'number') {
emit('input', Number(value));
} else {

View File

@@ -87,5 +87,20 @@ export default defineInterface(({ i18n }) => ({
default_value: false,
},
},
{
field: 'nullable',
name: i18n.t('interfaces.text-input.nullable'),
type: 'boolean',
meta: {
width: 'half',
interface: 'toggle',
options: {
label: i18n.t('interfaces.text-input.nullable_label'),
},
},
schema: {
default_value: true,
},
},
],
}));

View File

@@ -1,6 +1,7 @@
<template>
<v-input
:value="value"
:nullable="nullable"
:placeholder="placeholder"
:disabled="disabled"
:trim="trim"
@@ -38,6 +39,10 @@ export default defineComponent({
type: String,
default: null,
},
nullable: {
type: Boolean,
default: true,
},
disabled: {
type: Boolean,
default: false,

View File

@@ -917,6 +917,8 @@ interfaces:
trim_label: Trim the start and end
mask: Masked
mask_label: Hide the real value
nullable: Nullable
nullable_label: Save empty value as NULL
textarea:
textarea: Textarea
description: Enter multiline plain-text