From d5e466a233f8b402d67043c823045799c5bd0fbd Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Sat, 16 Jul 2022 09:57:10 +0800 Subject: [PATCH] 优化表单验证,修复动态变更验证规则不生效的问题 --- forms/input/CInput.vue | 27 ++++++++++++++++++++++++--- 1 files changed, 24 insertions(+), 3 deletions(-) diff --git a/forms/input/CInput.vue b/forms/input/CInput.vue index 171f765..d23c616 100644 --- a/forms/input/CInput.vue +++ b/forms/input/CInput.vue @@ -6,7 +6,7 @@ <template> <view class="c-input" - :class="unit?'c-input-unit':''" + :class="[unit?'c-input-unit':'', readOnly ? 'read-only':'']" > <AtInput :name="itemRes.name" @@ -15,8 +15,9 @@ :placeholder="placeholder" :required="itemRes.required" :error="itemRes.error" - :value="itemRes.formData[itemRes.name]" - :onChange="evt=>itemRes.onChange(evt)" + :cursorSpacing="0" + :value="value" + :onChange="evt => hanldeChange(evt)" > <slot v-if="!unit" /> <text @@ -45,6 +46,26 @@ placeholder: String, // 输入框单位 unit: String, + // 只读模式 + readOnly: { + type: Boolean, + default: false, + }, + }, + computed: { + value() { + return ((this.itemRes.formData[this.itemRes.name] || '') + '').replace( + /[\n\r]/g, + '' + ); + }, + }, + methods: { + hanldeChange(evt) { + // 小程序中,可以粘贴换行符进来 + const changeValue = ((evt || '') + '').replace(/[\n\r]/g, ''); + this.itemRes.onChange(changeValue); + }, }, mounted() {}, }; -- Gitblit v1.9.1