vue+elementui时间验证问题处理
2018-05-04 17:58
2759 查看
问题描述
使用<el-date-picker>标签时,有时间校验规则,如果添加时间,没问题,但是编辑时,不重新选择的话,会报错代码展示
<el-form v-model="result" :rules="rule"> <el-form-item label="时间" prop="update"> <el-date-picker v-model="result.update" type="date"></el-date-picker> </el-form-item> </el-form> <script> export default { created(){ this.getData() }, data(){ return{ result: { update:'', }, rules: { update:[{type:'date',required:true,message:'请输入时间',trigger:'change'}] }, } }, methos: { getData(){ //请求数据queryData返回后赋值,返回值格式2018-05-04 this.result.update=queryData //第一种方式 this.result.update=new Date(queryData) //第二种方式 }, } } </script>
报错现象
如果是第一种方式,那么会直接报错:vaule.getTime is not a function如果是第二种方式,那么编辑时,如果不修改时间直接保存,那么后台存入的数据不是日期而是日期时间格式,即本应该2018-05-04,但存入的是2018-05-04 08:00:00
问题原因
第一种方式,因为在created()方法里执行的时候,有可能返回undefined等类型,但是校验规则里会校验,此时会报错第二种方式,因为new Date()方式会把2018-05-04这种以-连接并有0的ISO时间格式用格林尼治国际标准时的时区计时(js时间Date对象介绍及解决getTime转换为8点的问题)返回,后台未经处理然后直接返回所以格式错误
解决方式
修改rules内容为:update:[{required:true,message:'请输入时间'}]
如果rules内容不修改,则必须保证后台返回数据赋值的时候是'2018-05-04'或者空字符串''
使用第一种方式,不进行处理返回的日期格式字符串
相关文章推荐
- Vue ElementUI之Form表单验证遇到的问题
- vue + element-ui 的表单验证失效问题
- Vue2.0 UI框架Element运用之DateTimePicker(el-date-picker)初始值及时间格式转化等细节问题
- 使用Vue与ElementUI开发时,关于时间控件的问题
- vue+elementUI中使用 el-autocomplete 实现远程搜索的下拉框需要注意的问题
- vue + ElementUI 关闭对话框清空验证,清除form表单
- vue elementUI之Form表单 验证
- vue + ElementUI 关闭对话框清空验证,清除form表单
- 在使用element ui时 时间组件获取时间格式问题
- vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
- vue引入element-ui 2.0 后报错问题解决措施
- element-ui的表单验证问题
- vue elementUI之Form表单 验证
- vue + elementui表单重置 resetFields问题(无法重置表单)
- element-ui+vuex共享自定义方法进行表单验证 validator
- Vue使用vux-ui自定义表单验证遇到的问题及解决方法
- 解决Vue+Element ui开发中碰到的IE问题
- vue+element-ui打包时候出现 UglifyJs Unexpected token: punc 问题
- Vue的项目使用Element ui 走马灯 不能实现的问题
- vue中使用element-ui进行表单验证的实例代码