uview 1 uni-app表单 number digit 的输入框有初始化赋值后,但是校验失败

 背景:

在onReady初始化规则

onReady() {
            this.$refs.uForm.setRules(this.rules);
 },

同时:ref,model,rules,props都要配置好。

报错

当input框限定type为number,digit类型有初始值不做修改动作,直接提交会报错,验证失败:报空。

<u-form-item label="小时" label-width="150" right-icon="arrow-right" prop="hours"> <u-input placeholder="请选择" type="number" class="form-field-select" v-model="model.hours"/> </u-form-item>

验证规则

data():{

return {

model: {type: '年假', days: '0', reason: '-', hours: 0,
},
rules: {type: [{required: true,message: '请输入请假类型',trigger: ['change', 'blur'],}],days: [{required: true,message: '请输入请假类型',trigger: ['change', 'blur'],}],hours: [{required: true,message: '请输入小时',trigger: ['change', 'blur'],}],reason: [{required: true,message: '请输入租赁洗涤价',trigger: ['change', 'blur']}]// {min: 0,max:500, message: '不能小于0', trigger: ['change', 'blur'],}],
},

}}

解决:

方法1:hours:数字的字段加上数字正则匹配规则,限制只能0-999的数字,且只能有2个小数。

hours: [{required: true,message: '请输入小时',pattern:/^(([1-9]\d{0,3})|0)(\.\d{0,2})?$/,trigger: ['change', 'blur'],}
]

方法2: hours: 先强制转成字符串再让其检验,如果不限制小数位数,这个方法简单点,

hours:[{required: true,
message: '请输入售价',
trigger: ['change', 'blur'],
// 正则检验前先将值转为字符串
transform(value) {return String(value);
},}]

源码:

<template><view class="wrap" style="padding-bottom: 60px;"><u-tabs :list="list" :is-scroll="false" :current="current" @change="change"></u-tabs><!-- 当前套餐 --><view v-if="current === 0"><u-form class="form" :model="model" :rules="rules" ref="uForm"><u-gap height="20" bg-color="#f5f5f5"></u-gap><u-form-item label="请假类型" label-width="150" right-icon="arrow-right" prop="type"><u-input placeholder="请选择" type="select" class="form-field-select" v-model="model.type"/></u-form-item><u-gap height="20" bg-color="#f5f5f5"></u-gap><u-form-item label="天数" label-width="150" right-icon="arrow-right" prop="days"><u-input placeholder="请选择" type="text" class="form-field-select" v-model="model.days"/></u-form-item><u-gap height="20" bg-color="#f5f5f5"></u-gap><u-form-item label="小时" label-width="150" right-icon="arrow-right" prop="hours"><u-input placeholder="请选择" type="number" class="form-field-select" v-model="model.hours"/></u-form-item><u-form-item label="结束时间" label-width="150" right-icon="arrow-right"><u-input placeholder="请选择" type="" class="form-field-select"/></u-form-item><u-gap height="20" bg-color="#f5f5f5"></u-gap><u-form-item label="请假事由" label-width="150" prop="reason"></u-form-item><u-form-item><u-input type="textarea" placeholder="请输入内容" v-model="model.reason"/></u-form-item><u-gap height="20" bg-color="#f5f5f5"></u-gap><u-form-item label="图片" label-width="150"><view solt="right" style="flex:1;text-align: right;align-items: center;"><i class="add-user iconfont icon-tupian"></i></view></u-form-item><u-gap height="20" bg-color="#f5f5f5"></u-gap><u-form-item label="选人处理人" label-width="150"><view solt="right" style="flex:1;text-align: right;align-items: center;"><i class="add-user iconfont icon-zengjia"></i></view></u-form-item></u-form><u-row gutter="32" class="bottom-box" justify="center"><u-col span="10"><view><u-button type="primary" shape="circle" @click="submitForm">确定</u-button></view></u-col></u-row></view></view>
</template>
<script>
export default {data() {return {show: false,model: {type: '年假', days: '0', reason: '-', hours: 1,},rules: {type: [{required: true,message: '请输入请假类型',trigger: ['change', 'blur'],}],days: [{required: true,message: '请输入请假类型',trigger: ['change', 'blur'],}],hours: [{required: true,message: '请输入请假类型',pattern:/^(([1-9]\d{0,3})|0)(\.\d{0,2})?$/,trigger: ['change', 'blur'],}],reason: [{required: true,message: '请输入原由',trigger: ['change', 'blur']}]// {min: 0,max:500, message: '不能小于0', trigger: ['change', 'blur'],}],},list: [{name: '发起申请'}, {name: '查看数据',}],m2mSimflowList: [],m2mOrderFlowList: [],current: 0,status: 'loadmore',iconType: 'circle',isDot: false,loadText: {loadmore: '点击加载更多',loading: '正在加载...',nomore: '没有更多了'},}},onReady() {this.$refs.uForm.setRules(this.rules)},created() {},methods: {submitForm() {this.$refs.uForm.validate(valid => {if (valid) {this.$u.toast("验证通过")} else {this.$u.toast('验证失败')}})},change(index) {this.current = index;},navTo(url) {uni.navigateTo({url: url});}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/151385.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HCIP笔记——数据链路层协议

网络类型 根据二层&#xff08;数据链路层&#xff09;所使用的协议来进行区分。 MA——多点接入网络 BMA——广播型多点接入网络——以太网 NBMA——非广播型多点接入网络 P2P——点到点的网络 以太网协议 MAC地址——区分和标识不同的设备 以太网中独有的一种地址——MAC地址…

UnoCSS快速入门

UnoCSS快速入门 UnoCSS一、UnoCSS简介二、UnoCSS解决问题三、UnoCSS实践四、好文推荐 UnoCSS 一、UnoCSS简介 UnoCSS 是一个即时、按需的原子级 CSS 引擎。它专注于提供轻量化、高性能的 CSS 解决方案。“Instant On-demand” 表示 UnoCSS 的加载和渲染速度非常快&#xff0c;…

【Leetcode】【每日一题】【简单】2558. 从数量最多的堆取走礼物

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/take-gifts-from-the-richest-pi…

语法复习之C语言与指针

内存是如何存储数据的&#xff1f; 在C语言中定义一个变量后&#xff0c;系统就会为其分配内存空间。这个内存空间包括了地址和长度。将变量赋值后&#xff0c;该值就被写入到了指定的内存空间中。内存空间的大小一般以字节作为基本单位。   普通变量存放的是数据&#xff0c…

【ROS入门】雷达、摄像头及kinect信息仿真以及显示

文章结构 雷达信息仿真以及显示Gazebo仿真雷达配置雷达传感器信息xacro文件集成启动仿真环境 Rviz显示雷达数据 摄像头信息仿真以及显示Gazebo仿真摄像头新建xacro文件&#xff0c;配置摄像头传感器信息xacro文件集成启动仿真环境 Rviz显示摄像头数据 kinect信息仿真以及显示Ga…

Python算法练习 10.28

leetcode 700 二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 null 。 示例 1: 输入&#xff1a;root [4,2,7,1,…

视频转换器WinX HD Video Converter mac中文特点介绍

WinX HD Video Converter mac是一款功能强大的视频转换器&#xff0c;它可以将各种不同格式的视频文件转换为其他视频格式&#xff0c;以便用户在各种设备上进行播放。WinX HD Video Converter是一个功能强大、易于使用的视频转换器&#xff0c;适用于各种类型的用户&#xff0…

WordPress主题模板 大前端D8 5.1版本完整开源版源码简洁大气多功能配置

源码测评&#xff1a;该模板官方已更新至5.2&#xff0c;但是这个5.1也是非常好用的&#xff0c;经测试所有页面均完好&#xff0c;推荐下载使用。 模板简介&#xff1a; 大前端D8 主题是一款非常牛逼的WordPress博客主题,响应式,功能齐全,支持手机,电脑,平板,非常适合做博客站…

css实现圆形进度条

能用现成组件就用&#xff0c;实现不行再自己写&#xff0c;因为牵扯到上传文件&#xff0c;进度实时出不来&#xff0c;所以只能使用dom元素操作&#xff1b; 1.实现 效果&#xff1a; 上图是100%&#xff0c;如果需要根据百分比显示&#xff0c;我们需要看下代码里面left和…

postgis ST_ClipByBox2D用法

官方文档 概述 geometry ST_ClipByBox2D(geometry geom, box2d box); 描述 以快速且宽松但可能无效的方式通过 2D 框剪切几何体。 拓扑上无效的输入几何图形不会导致抛出异常。 不保证输出几何图形有效&#xff08;特别是&#xff0c;可能会引入多边形的自相交&#xff09;…

STM32 ADC数模转换器

STM32 ADC数模转换器 ADC简介 ADC&#xff08;Analog-Digital Converter&#xff09;模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁 STM32主要是数字电路&#xff0c;数字电路只有高低电平&#xf…

【Linux】rpm和yum的使用

不知道是不是有和我一样的宝子们&#xff0c;在rpm上卡了老久老久&#xff0c;但其实搞通了&#xff0c;理解了原理之后&#xff0c;不难的&#xff0c;所以不管你现在遇到的困难是什么&#xff0c;都不要放弃&#xff0c;一定要坚持&#xff0c;加油。 一、rpm 1.rpm rpm的…