v-input returns numbers when type number and update numeric

This commit is contained in:
Nitwel
2020-09-04 12:53:05 +02:00
parent dcb38ecb31
commit 2f15087311
4 changed files with 25 additions and 19 deletions

View File

@@ -181,24 +181,28 @@ export default defineComponent({
function emitValue(event: InputEvent) {
let value = (event.target as HTMLInputElement).value;
if (props.trim === true) {
value = value.trim();
}
if (props.type === 'text') {
if (props.trim === true) {
value = value.trim();
}
if (props.slug === true) {
const endsWithSpace = value.endsWith(' ');
value = slugify(value, { separator: props.slugSeparator });
if (endsWithSpace) value += props.slugSeparator;
}
if (props.slug === true) {
const endsWithSpace = value.endsWith(' ');
value = slugify(value, { separator: props.slugSeparator });
if (endsWithSpace) value += props.slugSeparator;
}
if (props.dbSafe === true) {
value = value.toLowerCase();
value = value.replace(/\s/g, '_');
// Replace é -> e etc
value = value.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
}
if (props.dbSafe === true) {
value = value.toLowerCase();
value = value.replace(/\s/g, '_');
// Replace é -> e etc
value = value.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
}
emit('input', value);
emit('input', value);
} else if (props.type === 'number') {
emit('input', Number(value));
}
}
function stepUp() {
@@ -209,7 +213,7 @@ export default defineComponent({
input.value.stepUp();
if (input.value.value) {
return emit('input', input.value.value);
return emit('input', Number(input.value.value));
}
}
@@ -221,7 +225,7 @@ export default defineComponent({
input.value.stepDown();
if (input.value.value) {
return emit('input', input.value.value);
return emit('input', Number(input.value.value));
} else {
return emit('input', props.min || 0);
}

View File

@@ -34,6 +34,9 @@ export default defineInterface(({ i18n }) => ({
width: 'half',
interface: 'numeric',
},
schema: {
default_value: 1,
},
},
{
field: 'placeholder',

View File

@@ -25,7 +25,7 @@ import { defineComponent, PropType } from '@vue/composition-api';
export default defineComponent({
props: {
value: {
type: [Number, String],
type: Number,
default: null,
},
disabled: {

View File

@@ -6,7 +6,6 @@
:trim="trim"
:type="masked ? 'password' : 'text'"
:class="font"
:max="length"
@input="$listeners.input"
>
<template v-if="iconLeft" #prepend><v-icon :name="iconLeft" /></template>