From 8305d3016b7e1b76dfd71fa5baa7a6ac40f2299f Mon Sep 17 00:00:00 2001 From: wangyaqi Date: Mon, 11 Mar 2024 12:11:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(uni-app-x=20web):=20input=E3=80=81textarea?= =?UTF-8?q?=20maxlength=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 默认值调整为w3c规范一样,默认为不限制长度 2. 初始value值也受maxlength限制(w3c规范不受maxlength限制) 3. maxlength调整默认后,设置非法值时按默认值处理 4. 合法值是0和正整数。负数是非法值,按不限制对待。但正小数,是取整对待(不是四舍五入) --- packages/uni-components/src/helpers/useField.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/uni-components/src/helpers/useField.ts b/packages/uni-components/src/helpers/useField.ts index e280feba0c9..8de411a0b74 100644 --- a/packages/uni-components/src/helpers/useField.ts +++ b/packages/uni-components/src/helpers/useField.ts @@ -220,7 +220,13 @@ function useBase( }) const maxlength = computed(() => { var maxlength = Number(props.maxlength) - return isNaN(maxlength) ? 140 : maxlength + if (__X__) { + return isNaN(maxlength) || maxlength < 0 + ? Infinity + : Math.floor(maxlength) + } else { + return isNaN(maxlength) ? 140 : maxlength + } }) const value = getValueString(props.modelValue, props.type) || @@ -241,7 +247,10 @@ function useBase( ) watch( () => state.maxlength, - (val) => (state.value = state.value.slice(0, val)) + (val) => (state.value = state.value.slice(0, val)), + { + immediate: __X__ ? true : false, + } ) return { fieldRef,