1.验证上传文件的类型:

(1)验证图片类型

<template>
<el-upload
class="avatar-uploader"
action="https://jsonplaceholder.typicode.com/posts/"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
>
<img v-if="imageUrl" :src="data:imageUrl" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</template>
 
<script>
handleAvatarSuccess (res, file) {
this.imageUrl = URL.createObjectURL(file.raw)
},
beforeAvatarUpload (file) {
const isIMG =
file.type === 'image/jpg' ||
file.type === 'image/jpeg' ||
file.type === 'image/png'
const isLt = file.size / 1024 / 50 <= 1
if (!isIMG) {
this.$message.error('上传头像图片只支持jpg、jpeg、png格式!')
}
if (!isLt) {
this.$message.error('上传头像图片大小不能超过50KB!')
}
return isLt && isIMG
}
</script>

(2)限制文件大小及其类型为压缩包

<el-button
size="small"
plain
class="btn-upload"
accept="application/x-zip-compressed"
>点击上传
</el-button>
 
methods: {
beforeAvatarUpload (file) {
let fileName = file.name
let pos = fileName.lastIndexOf('.')
let lastName = fileName.substring(pos, fileName.length)
if (
lastName.toLowerCase() !== '.zip' &&
lastName.toLowerCase() !== '.rar'
) {
this.$message.error('文件必须为.zip或者.rar类型')
// this.resetCompressData()
return
}
// 限制上传文件的大小
const isLt =
file.size / 1024 / 5 >= 1 && file.size / 1024 / 1024 / 100 <= 1
if (!isLt) {
this.$message.error('上传文件大小不得小于5KB,不得大于100MB!')
}
return isLt
}
}

(3)验证.txt文件也类似

<el-upload
class="upload-file"
style="display:inline-block;"
action="https://jsonplaceholder.typicode.com/posts/"
:show-file-list="false"
:before-upload="beforeAvatarUpload"
>
<el-button size="small" plain class="btn-upload" accept="text/txt">上传关键字</el-button>
</el-upload>
 
beforeAvatarUpload (file) {
let fileName = file.name
let pos = fileName.lastIndexOf('.')
let lastName = fileName.substring(pos, fileName.length)
if (lastName.toLowerCase() !== '.txt') {
this.$message.error('请上传.txt文件类型')
}
}

2.简单的表单验证处理

<el-form
ref="ruleForm"
:model="ruleForm"
:rules="rules"
label-width="100px"    //设置输入框的宽度
size="small"   //给定输入框的尺寸大小
class="form"   
>
....
</el-form>
 
<script>
ruleForm: {
name: '',
landing: ''
},
rules: {
name: [
{ required: true, message: '请输入创意名称', trigger: 'blur' },   //required设置它为必填选项
{ min: 3, max: 5, message: '长度在3到5个字符', trigger: 'blur' }
],
landing: [
{ required: true, message: '请输入落地页', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在3到5个字符', trigger: 'blur' }
]
}
</script>

3.回车提交内容

原生的input,使用 @keyup.enter就可以:

原生:<input v-model="form.name" placeholder="昵称" @keyup.enter="submit">

但使用element-ui,则要加上native限制符,因为element-ui把input进行了封装,原事件就不起作用了:
element-ui:

<el-input
type="text"
v-model="keyWord"
placeholder="请输入关键词,回车键(enter提交)"
@keyup.enter.native="submit">
</el-input>
 
submit () {
const isLength = this.keyWord.length
if (isLength > 30) {
this.$message.error('超长关键词无法添加!')
return
}
this.keyWord = ''     //enter提交之后清空输入框的内容
}

注:取消则使用@submit.native.prevent:例<el-form :inline="true" @submit.native.prevent> </el-form>  取消输入框中按下回车提交该表单的默认行为

4.设置路由 this.$router.push({}):

例<el-button @click="cancel">取消</el-button>
 
cancel () {
this.$router.push({
path: '/customCrowd'
})
}
 
5. 禁用属性

:disabled="true"
 
注:在vue中this的使用:this是指整个当前的文档;使用vue框架时script中不能使用冒号;在script中的内容必须使用单引号不能使用双引号;定义函数方法时要注意留出一个空格;避免定义未用到的变量;建议单独建立一个全局的样式文档static/css/下,因为很多时候框架默认样式权值更大,直接在当前文件中设置css样式不起作用,但是要加上该文本的类名,避免影响其他区域;另外,style标签中scoped的作用是表明以下定义的内容只在该区域中生效
 
6.使用vue的watch监听数据传输中的变化

7.常见的分页问题处理bug

问题描述:第n页仅有一条数据,当删除这条数据时再一次请求数据列表,此时this.page的值仍然是n,但实际上此时应该发送的是n-1,因此需要做判断,利用删除该数据前的列表请求回来的total值减1,再对this.pageSize取天花板函数Math.ceil((_this.total - 1)/10)

8.监听输入字数 使用input事件

Vue Element-ui 框架:路由设置 限制文件类型 表单验证 回车提交 注意事项 监听事件的更多相关文章

  1. vue项目element-ui框架中的弹窗中的表单验证清除问题

    问题回顾: 1.vue项目的在弹窗上的form表单验证,第一次点击新增时正常,第二次新增打开弹窗后由于表单内容为空,出现验证这种情况 2.为了解决上面的情况,在执行点击新增事件加上this.$refs ...

  2. Element表单验证(1)

    Element表单验证(1) 首先要掌握Element官方那几个表单验证的例子,然后才看下面的教程. Element主要使用了async-validator这个库作为表单验证 async-valida ...

  3. Vue 使用 vuelidate 实现表单验证

    表单验证的应用场景十分广泛,因为网站对用户输入内容的限制是非常必要的. 在vue中,我们使用vuelidate方便地实现表单验证. 官方文档在这里https://monterail.github.io ...

  4. element自定义表单验证

    element-ui框架下修改密码弹窗进行表单验证. 除了基础校验,密码不为空,长度不小于6字符,需求中还需校验密码由数字和字母组合. 处理代码如下: <el-dialog :visible.s ...

  5. 基于vue(element ui) + ssm + shiro 的权限框架

    zhcc 基于vue(element ui) + ssm + shiro 的权限框架 引言 心声 现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目 ...

  6. vue+element ui 的上传文件使用组件

    前言:工作中用到 vue+element ui 的前端框架,使用到上传文件,则想着封装为组件,达到复用,可扩展.转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9 ...

  7. vue+element UI + axios封装文件上传及进度条组件

    1.前言 之前在做项目的时候,需要实现一个文件上传组件并且需要有文件上传进度条,现将之前的实现过程简单记录一下,希望可以帮助到有需要的人. 项目用的是Vue框架,UI库使用的是element UI,前 ...

  8. 分享一个自搭的框架,使用Spring boot+Vue+Element UI

    废弃,新的:https://www.cnblogs.com/hackyo/p/10453243.html 特点:前后端分离,可遵循restful 框架:后端使用Spring boot,整合了aop.a ...

  9. Element UI 框架搭建

    Element UI 框架搭建 1.webpack 全局安装 npm install -g webpack 2.淘宝镜像cnpm安装 npm install -g cnpm --registry=ht ...

随机推荐

  1. JavaScript权威指南--立即执行函数

    千万不要停下追逐梦想的脚步 (function(){ //execute this method immediatly. //content... }());

  2. jconsole如何查看

    https://www.jdon.com/idea/jvm-gc.html 场景: https://www.cnblogs.com/yszzu/p/9648579.html    查看大对象到底占用多 ...

  3. Lonsdor K518ISE Key Programmer Review

    Lonsdor K518ISE key programmer is the latest version of Lonsdor, with wider vehicle coverage in key ...

  4. connect to 10.104.11.128 port 9999 (tcp) failed: No route to host

    问题: iptables当找到匹配的规则时,就会执行相应的动作,而不会向下继续匹配. 可以看到https没有添加,匹配不到规则,所以就会包错 解决方法: iptables -I INPUT -p tc ...

  5. 转 windows下安装pycharm并连接Linux的python环境 以及 windows 下notepad ++编辑 linux 的文件

    ######sample 1:windows下安装pycharm并连接Linux的python环境 https://www.cnblogs.com/junxun/p/8287998.html wind ...

  6. array.map

    定义和用法 map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值. map() 方法按照原始数组元素顺序依次处理元素. 注意: map() 不会对空数组进行检测. 注意: ma ...

  7. ie中html页面无法加载css

    今天写代码发生一个很尴尬的问题,码了一天的代码在ie下一调试居然没有样式,打开F12查看元素果然没有样式,在其他浏览器完全没问题,ie就出事. ie肯定没问题,问题还是处在代码上了,百度了一下说是把& ...

  8. python迭代器、生成器、列表推倒式

    创建迭代器: iter( ): 创建迭代器 next( ): 返回迭代器的下一个element(元素) 实例题: >>> list = [1,2,3,4] >>> ...

  9. hadoop和spark比较

    http://blog.51cto.com/13943588/2165946 3.hadoop和spark的都是并行计算,那么他们有什么相同和区别?  两者都是用mr模型来进行并行计算,hadoop的 ...

  10. robot framework 的AutoItLibrary常用关键字

    1.run 的用法,以及激活当前窗口