v-show和element中表单验证validate起到的化学反应

  说起v-show和v-if,进行前端开发的大家一定不会陌生,他们都是用来控制标签元素的显示与隐藏的,他们的区别就是v-show会把标签渲染出来,只是会隐藏起来,相当于visibility:hidden和opacity:0;的作用,而v-if如果为false的话,则标签都不会被渲染,相当于display:none;的作用,那么他们到底会和表单验证产生什么化学反应呢,下面就来看看我踩的这个坑吧。

  

  这里我们可以看到element 上对于validate的一个解释,也就是他会帮我们验证表单里面的数据是否满足我们设定好的验证规则,全部满足规则才能通过,并且执行之后的方法,乍一听上去好像没什么关系,但是我们的需求是这样的,当点击一个按钮的时候,表单变成另外一种样式,也就需要进行另一次表单验证,哪一种样式有值的话,就默认显示哪种样式。我之前是通过v-show来控制标签的显示与隐藏的,但是后来发现,当我点击了按钮之后,即如果我默认是第二种样式的时候,这时候我的表单验证就通过不了,即我点击了提交按钮很可能没有反应,这令我非常困惑,于是就开始了各种找bug。

  最后,我才发现,如果默认是第二种情况的话,他其实就已经把第一种样式也渲染出来了,只不过是把第一种隐藏了,但是他表单验证是不认这些的,只要你渲染过了他就会进行表单验证,而你第一种样式又被隐藏了,所以验证一直通不过,后面的就被阻断了(这就是我们用v-show引起的,因为他默认会把元素渲染出来),所以,把v-show改成v-if就可以了。

原文地址:https://www.cnblogs.com/inkwind/p/11555887.html

时间: 2024-10-01 19:27:52

v-show和element中表单验证validate起到的化学反应的相关文章

HTML5中表单验证的8种方法(转)

在深人探讨表单验证之前,让我们先思考一下表单验证的真实含义.就其核心而言,表单验证是一套系统,它为终端用户检测无效的控件数据并标记这些错误.换言之,表单验证就是在表单提交服务器前对其进行一系列的检查并通知用户纠正错误. 但是真正的表单验证是什么? 是一种优化. 之所以说表单验证是一种优化,是因为仅通过表单验证机制不足以保证提交给服务器的表单数据是正确和有效的.另一方面,设计表单验证是为了让Web应 用更快地抛出错误.换句话说,最好利用浏览器内置的处理机制来告知用户网页内包含无效的表单控件值.过去

jquery表单验证validate

在做表单验证时,如果表单信息比较多,导致提交按钮和错误信息没在已屏显示,就会导致无法提交,又没有友好提示的问题. 理想的解决办法就是在验证发生错误时,自动定位到错误提示的地方,方便用户查看和修改. $("#Send").click(function (e) { // 这行是 Opera 的补丁, 少了它 Opera 是直接用跳的而且画面闪烁 $body = (window.opera) ? (document.compatMode == "CSS1Compat" ?

Element 中表单非必填数据项 必须为数字的验证问题

Element-ui 的el-form组建中,自带基本的验证功能,比如某些项必填的验证,直接加入rules 规则中即可,如下实例: 在页面中书写如下: 1 <el-form-item label="月份:" prop="firstDay"> 2 <common-month-select :year="year" @monthChange="monthChange" :selectMonth="sel

Element表单验证规则

一.简单的逻辑验证使用方法: 方法步骤: 1.在html中给el-form增加 :rules="rules" 2.html中在el-form-item 中增加属性 prop="名称" 3.js中直接在data中定义rules:{} 在html中的写法: <el-form ref="formData" :rules="rules" :model="formData" label-width="

YII中表单验证

关于表单的验证有三种: 1.yii的客户端验证 2.yii的服务器端验证 3.yii的ajax验证 例如: 1.在表单对应的模型中定义一个rules方法(该方添加后,在表单提交时,将自动被调用) public function rules() { return array( array("表单元素名也就是字段名","验证类","message"=>"提示信息"), array("表单元素名也就是字段名"

Asp.net MVC中表单验证属性的使用

用于检查是否有输入值 :RequiredFieldValidator(必须字段验证)按设定比较两个输入 :CompareValidator(比较验证) 输入是否在指定范围 :RangeValidator(范围验证) 正则表达式验证控件 :RegularExpressionValidator(正则表达式验证) 自定义验证控件 :CustomValidator(自定义验证) 总结验证结果 :ValidationSummary(验证总结) 1.RequiredFieldValidator(必填字段验证

iview中表单验证(遇到的问题)

一, 1,日期时间选择器,验证时type应为'data'类型; { required: true, type: 'date', message: '请选择日期', trigger: 'blur' } 2,(将后台获取到的字符串格式的数据放入new Data()中,问题就解决了)日期时间选择器,是将时间转为标准时间格式进行处理的,这里要注意在进行赋值操作时记得把后台获取的的字符串的日期时间给转为标准时间后再进行赋值操作 this.formValidate.beginDate = new Date(

表单验证——JavaScript和Jquery版

1.轻量级的JavaScript表单验证 在应用中引用 validator.min.js 文件 <script type="text/javascript" src="dist/validator.min.js"></script> 实例: <form id="example_form"> <div> <label for="email">邮箱验证</label

jQuery Validation Engine 表单验证

功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身拥有丰富的验证规则外,还可以添加自定义的验证规则. 兼容 IE 6+, Chrome, Firefox, Safari, Opera 10+ 版本: jQuery v1.7+ jQuery Validation Engine v2.6.2 相对 2.2.4 版本的一些区别: 部分参数功能发生变化: 输入控件可以不写 id 属性: 参数 onSuccess 和 onFailure 改为