当前位置: 首页 > news >正文

帮公司做网站镇江百度关键词优化

帮公司做网站,镇江百度关键词优化,丹阳市住房建设管理局网站,郑州一网网站建设uniapp 多级动态表单添加自定义规则 在uniapp制作小程序时,当涉及到需要设置validateFunction的校验规则时。可能遇到的问题 1、validateFunction不生效,没有触发 2、多层级表单怎么添加validateFunction自定义校验规则 本文将以单表单校验和多表单校…

uniapp 多级动态表单添加自定义规则

在uniapp制作小程序时,当涉及到需要设置validateFunction的校验规则时。可能遇到的问题

1、validateFunction不生效,没有触发
2、多层级表单怎么添加validateFunction自定义校验规则

本文将以单表单校验和多表单校验分类描述

单表单自定义规则校验

要注意的是:

1、去掉:rules=“rules”,因为表单再校验时validateFunction会不执行
2、本文中photoList是自定义组件,主要结构为数组,可按照自己的需求填写
3、须在onReady()内设置规则、

    <template><uni-forms ref="baseForm" :modelValue="baseFormData" label-position="left" label-width="150rpx"><uni-forms-item label="现场拍照" required name="imageList"><photoList v-model="baseFormData.imageList" limit="9"></photoList></uni-forms-item></uni-forms><u-button class="button" type="primary" shape="circle" @click="submit('baseForm')">提交</u-button>
</template>
<script>
export default {data() {return {dynamicRules: {imageList: {rules: [{required: true,errorMessage: '最少一张图片'}, {validateFunction: (rule, value, data, callback) => {// 异步需要返回 Promise 对象return new Promise((resolve, reject) => {setTimeout(() => {//按照自己的需要填写}, 500)})}}]},}}onReady() {/* 这里,我们通过refs拿到增加的内容,然后setRules */this.$refs.baseForm.setRules(this.dynamicRules)},methods:{// 提交submit(ref) {this.$refs[ref].validate().then(res => {}).catch(err => {this.$modal.alert(err[0].errorMessage)})},}
}
</script>

多层级表单规则校验

要注意的是:

1、多层级表单与单层级外部校验相同,不同的是需要在新增子项或者原表单中有子项遍历时,先渲染,后添加规则。
2、给子项uni-from-item组件添加ref用于判断校验位置。

<template><uni-forms ref="baseForm" :modelValue="baseFormData" label-position="left" label-width="150rpx"><view v-for="(item,index) in baseFormData.inspectionCustodyWorkLogDetailBoList" :key='index'><uni-forms-item label="照片" required :ref="'inspectionCustodyWorkLogDetailBoList-'+index":rules="[{required: true,errorMessage: `检查${index+1}图片不能为空`}]" :name="['inspectionCustodyWorkLogDetailBoList',index,'imagelist']" label-width="100rpx"><view class="form-item"><photoListv-model="baseFormData.inspectionCustodyWorkLogDetailBoList[index].imagelist"limit="9"></photoList></view></uni-forms-item></view></view><view ><u-button type="primary" icon="plus-square-fill" @click="add" plain:hairline="false">新增检查项</u-button></view></uni-forms><u-button class="button" type="primary" shape="circle" @click="submit('baseForm')">提交</u-button>
</template>
<script>
export default {data() {return {baseFormData: {inspectionCustodyWorkLogDetailBoList: [], //检查记录},dynamicRules: {// 基础表单数据imageList: {rules: [{required: true,errorMessage: '最少一张图片'}, {validateFunction: (rule, value, data, callback) => {// 异步需要返回 Promise 对象return new Promise((resolve, reject) => {setTimeout(() => {//按照自己的需要填写}, 500)})}}]},}}onReady() {/* 这里,我们通过refs拿到增加的内容,然后setRules */this.$refs.baseForm.setRules(this.dynamicRules)},methods:{// 选择企业这是在父表单需获取子项时增加company(val) {if (val != undefined) {// 获取企业必检项这是举例this.mustDeal = [{checkContent:1,inspectionItemType:1,riskLocation:2},{checkContent:1,inspectionItemType:1,riskLocation:2}]//循环获取内容添加至表单中this.mustDeal.forEach((item, index) => {this.baseFormData.inspectionCustodyWorkLogDetailBoList.push({checkContent: item.checkContent,images: null,inspectionItemType: item.inspectionItemType,riskLocation: item.riskLocation,id: Date.now(),imagelist: [],isPass: null, //是否合格isMustCheck: 1,})})/* 这里,我们通过refs拿到增加的内容,然后setRules */this.$nextTick(() => {/* 用nextTick是让界面先渲染 *//* 根据html中的ref规则,获取到uni-forms-item */this.baseFormData.inspectionCustodyWorkLogDetailBoList.forEach((ite, inde) => {// 	// rules[`imagelist`]=this.dynamicRules.imagelist.ruleslet $Item = this.$refs['inspectionCustodyWorkLogDetailBoList-' + inde];/* 对这个uni-forms-item主动setRules *//* 这里直接设置的是对应字段的rules */$Item[0].setRules(this.dynamicRules.imagelist.rules);})})} },// 新增检查项add() {this.baseFormData.inspectionCustodyWorkLogDetailBoList.push({checkContent: null,images: null,id: Date.now(),imagelist: [],isPass: null, //是否合格isMustCheck: 0, //非必检})/* 这里,我们通过refs拿到增加的内容,然后setRules */this.$nextTick(() => {/* 用nextTick是让界面先渲染 *//* 根据html中的ref规则,获取到uni-forms-item */let $Item = this.$refs['inspectionCustodyWorkLogDetailBoList-' + (this.baseFormData.inspectionCustodyWorkLogDetailBoList.length - 1)];/* 对这个uni-forms-item主动setRules *//* 这里直接设置的是对应字段的rules */$Item[0].setRules(this.dynamicRules.imagelist.rules);});},// 提交submit(ref) {this.$refs[ref].validate().then(res => {}).catch(err => {//输出报错信息this.$modal.alert(err[0].errorMessage)})},}
}
</script>
以上是本人工作中为解决问题使用,不足之处还望指出。
http://www.dinnco.com/news/31435.html

相关文章:

  • 官方网站怎么推广产品推销方案
  • 如何做局域网网站网店网络营销与推广策划书
  • web入门seo技术论坛
  • 网站头部导航刚刚北京传来重大消息
  • 网站开发api和微端seo优化操作
  • 做跨境电商看国外的哪些网站建立一个企业网站需要多少钱
  • 网站建设完成nba最新消息
  • 入侵网站做360广告搜狗站长平台打不开
  • 温州网站制作建设app开发用什么软件
  • 怎么添加网站白名单谷歌推广效果好吗
  • 做图神器的网站最新网络营销方式有哪些
  • 网站开发软件培训产品推广方案要包含哪些内容
  • 网站制作公司转型数据厦门seo网站推广
  • 做司法考试题目的网站如何创建微信小程序
  • 服务器windos做网站市场营销方案
  • wordpress前台发文seo软件定制
  • 成都学做网站抖音推广方式有哪些
  • 域名停靠万网域名网站培训课程名称大全
  • 昆明网站建设价目表西安seo计费管理
  • 点开图片跳到网站怎么做的seo引擎优化外包
  • 免费做网站站标百度旅游官网
  • wordpress建站赚钱今日短新闻20条
  • 阿里云机器怎么做网站如何在互联网上做推广
  • 阳江市新增确诊病例seo发贴软件
  • jsp做网站de后台管理西安seo公司哪家好
  • 咖啡网站建设化工seo顾问
  • 眉山网站制作seo推广培训
  • 安康市住房城乡建设委官方网站国外免费发产品的b2b平台
  • html网站怎么做几个网页广州竞价托管公司
  • 网站哪类业务建设投入会带来间接收益品牌营销推广策划方案