diff --git a/src/client/app/common/views/components/page-editor/page-editor.input.vue b/src/client/app/common/views/components/page-editor/page-editor.input.vue index 1f3754252b..4e13840439 100644 --- a/src/client/app/common/views/components/page-editor/page-editor.input.vue +++ b/src/client/app/common/views/components/page-editor/page-editor.input.vue @@ -43,6 +43,13 @@ export default Vue.extend({ created() { if (this.value.name == null) Vue.set(this.value, 'name', ''); if (this.value.inputType == null) Vue.set(this.value, 'inputType', 'string'); + + this.$watch('value.inputType', t => { + if (this.value.default != null) { + if (t === 'number') this.value.default = parseInt(this.value.default, 10); + if (t === 'string') this.value.default = this.value.default.toString(); + } + }); }, }); diff --git a/src/client/app/common/views/components/ui/input.vue b/src/client/app/common/views/components/ui/input.vue index 645062df28..a841ecca11 100644 --- a/src/client/app/common/views/components/ui/input.vue +++ b/src/client/app/common/views/components/ui/input.vue @@ -184,7 +184,11 @@ export default Vue.extend({ this.v = v; }, v(v) { - this.$emit('input', v); + if (this.type === 'number') { + this.$emit('input', parseInt(v, 10)); + } else { + this.$emit('input', v); + } if (this.withPasswordMeter) { if (v == '') {