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

武邑网站建设微网站开发项目合作协议

武邑网站建设,微网站开发项目合作协议,深圳宝安区必去景点,国内做五金加工的订单网站前言 以下内容都是基于element Plus 和 vue3 一个form-item校验两个下拉框 有时候不可避免会遇到需要一个form-item校验两个下拉框的情况#xff0c;比如#xff1a; 这种情况下传统的校验已经无法实现#xff0c;需要通过form表单提供的自定义校验来实现。以上面的必填…前言 以下内容都是基于element Plus 和 vue3 一个form-item校验两个下拉框 有时候不可避免会遇到需要一个form-item校验两个下拉框的情况比如 这种情况下传统的校验已经无法实现需要通过form表单提供的自定义校验来实现。以上面的必填为例 el-form-item label工作时报 propworkStartTimeel-selectv-modelstates.formData.workStartTimefilterablestylewidth: 120pxplaceholder请选择clearableel-optionv-foritem in states.workStartTimeList:keyitem.completeTime:labelitem.label:valueitem.completeTime//el-selectspan stylepadding: 0px 5px ~ /spanel-selectv-modelstates.formData.workEndTimefilterablestylewidth: 120pxplaceholder请选择clearablerefworkEndTimeRefel-optionv-foritem in states.workEndTimeList:keyitem.completeTime:labelitem.label:valueitem.completeTime//el-select /el-form-itemconst validatePass (rule: any, value: any, callback: any) {let workEndTime workEndTimeRef.value.selected.valueif (value workEndTime) {// 校验成功这里也可以一些其他逻辑callback()} else {callback(new Error(工作时报不能为空))} } const rules reactive({workStartTime: [{required: true,validator: validatePass,trigger: change,},], })注意点 1、定义的校验方法要放在校验规则上面不然会提示找不到方法 2、这点最重要首先form-item上绑定的属性是workStartTime所以你校验方法中只能拿到该属性对应的值。另一个下拉的值要先获取到你必须在下拉上绑定一个ref 你可以通过打印这个ref来找到另一个下拉的值。当第一个下拉改变后就会触发校验这时只需要判断两个下拉是否都已经有值如果没有值返回提示信息就好。 下拉框加一个二次确认确认值是否改变 以下图为例当计划类型值的改变时需要清空其他值时这时最好给与一个二次确认。确认是否改变而不是直接改变导致其他数据被清空这样会很奇怪。 这里的问题是当取消后应该显示原来显示的值。最初想的方向有点错了想通过监听来实现当取消时直接将旧值赋值给绑定的属性但实际结果是监听一直被触发确认弹窗无法被关闭。 其实实现起来挺简单最怕的就是方向想错了。可以定义一个变量来保存旧值然后将二次确认弹窗的部分加到下拉框change事件里 // 计划类型改变事件 const planTypeChange val {if (states.lastPlanType) {E_Msg.confirm(提示, 计划类型改变将清空所有资源对应的编码是否确认修改).then(() {emits(planTypeChange, val, true)}).catch(() {states.formData.planType states.lastPlanType})} else {states.lastPlanType val} }当第一次下拉选择时不应该弹出二次确认这时将当前选择的值记录当下次下拉改变后就会进行提示。 这里不用判断记录的值是否和当前选择的值相同只有当下拉值改变后才会触发change事件。change事件触发了一定说明值改变了。 获取form校验的返回结果 有时候因为业务逻辑比较复杂就会进行组件拆分。这时遇到的问题时如何在父组件里获取到子组件校验后的返回值。查了一下确实可以实现 // 子组件//获取表单数据 const getFormData () {return baseFormRef.value.validate().then(res {console.log(校验结果, res)if (res) {// 校验成功将表单数据返回return states.formData} else {// 检验失败返回false表示子组件表单检验不满足return false}}) }// 父组件子组件的返回值是一个promise函数这里要进行处理// 这里比较特殊父组件也需要进行校验正常情况添加上 async和await就好 formRef.value.validate(async valid {if (valid) {// 基本信息const baseData await baseRef.value.getFormData()// 资源信息const resourceData resourceRef.value.getFormData()console.log(保存的信息, baseData, resourceData)if (baseData resourceData) {}}})
http://www.dnsts.com.cn/news/165001.html

相关文章:

  • 上海黑马网站制作培训机构还能开吗
  • 茂名公司网站开发专业建设规划ppt
  • 中山网站建设公司哪家好商标图案自动生成
  • 旅游网站建设需求说明书可信赖的郑州网站建设
  • 学校门户网站建设的优势南宁做网站比较好的公司
  • 网站的建设ppt模板dz门户网站模板
  • 重庆建站公司官网好看的页面设计
  • 建设银行儿童网站济南章丘网站建设
  • 简单个人网站网站推广工作如何做
  • 京东网站建设过程成色好的y31s标准版下载
  • 如何编写网站建设wordpress字体编辑插件下载
  • 建站公司跑路了域名怎么办深圳网络营销网站建设
  • 网站开发语言统计抖音代运营套餐价格表
  • 网站需求建设关系书网站备案需要具备什么
  • 杭州建站模板展示毕设做网站答辩稿
  • 如何建设软件下载网站织梦做网站需要钱吗
  • 如何建设自己网站迅雷下载磁力天堂
  • 网站建设分金手指排名五类似WordPress的Python
  • 如何保护网站模板国外 wordpress模板下载地址
  • 90后小姑娘做网站中国建设银行网站特色
  • 仿站侵权吗wordpress 3源码
  • 中国建设银行网站客户注册码简约 网站
  • 云服务器建设网站软件网站的建设外链优化
  • 做电影网站需要的服务器配置网页设计师培训费
  • 论前端对网站建设的重要性wordpress 高德地图
  • 临沂做商城网站设计企业解决方案有哪些
  • 郑州网站开发网站开发搜索引擎营销的原理是什么
  • .课程网站建设与应用安徽网站建设费用
  • 东莞市国外网站建设平台谷歌wordpress优化
  • 免费刷粉网站推广番禺做网站报价