2***@qq.com
2***@qq.com
  • 发布:2023-02-14 07:21
  • 更新:2023-02-14 11:11
  • 阅读:294

【报Bug】uni-easyinputy在uni-form中,校验不生效

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: mac pro m1 ventura 13.2

HBuilderX类型: 正式

HBuilderX版本号: 3.6.18

第三方开发者工具版本号: 1.06.2301160 darwin-arm64

基础库版本号: 2.30.0

项目创建方式: HBuilderX

示例代码:
<template>  
    <uni-forms ref="form" :model="formData" label-position="top">  
        <uni-forms-item required name="contactPhone" label="联系电话:">  
            <uni-easyinput v-model="formData.contactPhone" placeholder="请输入手机号" type="number"></uni-easyinput>  
        </uni-forms-item>  
    </uni-forms>  
    <view class="__submit_btn">  
        <button class="__submit" type="primary" @click="submitForm">提交工单</button>  
    </view>  
</template>  

<script setup lang="ts">  
    import { reactive, ref } from "vue";  
    import { onReady } from '@dcloudio/uni-app';  
    const formData = reactive({  
        contactPhone: "",  
    });  

    function isNumber(val) {  
        return /^\d+$/.test(val);  
    }  

    function checkMobile(s) {  
        if (!isNumber(s)) return false;  
        var length = s.length;  
        if (length == 11 && /^(((1[3-9]{1})|)+\d{9})$/.test(s)) {  
            return true;  
        } else {  
            return false;  
        }  
    }  
    const form = ref(null);  
    const myrules = reactive({  
        contactPhone: {  
            rules: [{  
                required: true,  
                errorMessage: '请输入手机号'  
            }, {  
                validateFunction: function(rule, value, data, callback) {  
                    if (!checkMobile(value)) {  
                        callback('请输入正确的手机号')  
                    }  
                    return true  
                }  
            }, ]  
        },  
    });  

    const submitForm = () => {  
        form.value.validate((err: any, value: any) => {  
            if (!!err && err.length !== 0) {  
                uni.showToast({  
                    icon: "error",  
                    title: "请先完善信息",  
                    duration: 3000  
                });  
            }  
        })  
    };  
    onReady(() => {  
        // 需要在onReady中设置规则  
        form.value.setRules(myrules);  
    });  
</script>  

<style lang="scss" scoped>  
</style>  

操作步骤:

需要在微信开发者工具上点击真机调试,扫码后测试就会出现这个问题,在微信基础库位2.27.3上是没有这个问题的,其他版本未知

预期结果:

正常校验通过

实际结果:

即使输入正确的手机号,并不能通过校验

bug描述:

form中的easy-input校验始终不通过

2023-02-14 07:21 负责人:无 分享
已邀请:
DCloud_UNI_HT

DCloud_UNI_HT

在 uni-forms 中添加属性 :ruls="myrules" 试一试,看一下 自定义检验函数是否触发

  • 2***@qq.com (作者)

    还是不行的,一开始我就是把这个加上的

    2023-03-03 23:05

要回复问题请先登录注册