
名称不能为空,不能包含特殊字符
1、表单代码:
<el-form ref="formContent"
:model="formContent"
:rules="rules"
label-width="110px">
<el-form-item label="播出单名称:"
prop="broadcaseName">
<el-input v-model.trim="formContent.broadcaseName"
type="text"
size="mini"
class="elinput-300"
maxlength="16" />
</el-form-item>
</el-form>
2、定义rules
data () {
return {
// 验证方法
rules: {
'broadcaseName': [
{
required: true,
message: '请输入名称',
trigger: 'blur'
},
{
min: 1,
max: 16,
message: '请输入16位以内',
trigger: 'blur'
},
{
validator: validatebroadcaseName,
trigger: 'blur'
}
],
},
}
}
3、定义筛选特殊字符的变量
data () {
const validatebroadcaseName = (rule, value, callback) => {
console.log(this.checkSpecialKey(value))
if (!this.checkSpecialKey(value)) {
callback(new Error('名称不能含有特殊字符!'))
} else {
callback()
}
}
}
4、筛选特殊字符的方法
methods: {
checkSpecialKey (str) {
var specialKey = "[`~!#$^&*()=|{}':;'\[\].<>/?~!#¥……&*()——-|{}【】‘;:”“'。,、?]‘'"
for (var i = 0; i < str.length; i++) {
if (specialKey.indexOf(str.substr(i, 1)) !== -1) {
return false
}
}
return true
},
}
5、页面完整代码:
<!--
文件描述:element中表单验证实例
创建时间:2020/4/23 9:59
创建人:Administrator
-->
<template>
<div class="" style=" 300px;">
<el-form ref="formContent"
:model="formContent"
:rules="rules"
label-width="110px">
<el-form-item label="播出单名称:"
prop="broadcaseName">
<el-input v-model.trim="formContent.broadcaseName"
type="text"
size="mini"
class="elinput-300"
maxlength="16" />
</el-form-item>
</el-form>
</div>
</template>
<script>
// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
// 例如:import 《组件名称》 from '《组件路径》';
// 例如:import uploadFile from '@/components/uploadFile/uploadFile'
export default {
name: '',
// import引入的组件需要注入到对象中才能使用
components: {},
data() {
const validatebroadcaseName = (rule, value, callback) => {
console.log(this.checkSpecialKey(value))
if (!this.checkSpecialKey(value)) {
callback(new Error('名称不能含有特殊字符!'))
} else {
callback()
}
}
// 这里存放数据
return {
// 验证方法
rules: {
'broadcaseName': [
{
required: true,
message: '请输入名称',
trigger: 'blur'
},
{
min: 1,
max: 16,
message: '请输入16位以内',
trigger: 'blur'
},
{
validator: validatebroadcaseName,
trigger: 'blur'
}
],
},
formContent:{
broadcaseName:''
}
}
},
// 监听属性 类似于data概念
computed: {},
// 方法集合
methods: {
checkSpecialKey (str) {
var specialKey = "[`~!#$^&*()=|{}':;'\[\].<>/?~!#¥……&*()——-|{}【】‘;:”“'。,、?]‘'"
for (var i = 0; i < str.length; i++) {
if (specialKey.indexOf(str.substr(i, 1)) !== -1) {
return false
}
}
return true
},
},
// 监控data中的数据变化
watch: {},
// 生命周期 - 创建完成(可以访问当前this实例)
created() {
},
// 生命周期 - 挂载完成(可以访问DOM元素)
mounted() {
},
beforeCreate() {
}, // 生命周期 - 创建之前
beforeMount() {
}, // 生命周期 - 挂载之前
beforeUpdate() {
}, // 生命周期 - 更新之前
updated() {
}, // 生命周期 - 更新之后
beforeDestroy() {
}, // 生命周期 - 销毁之前
destroyed() {
}, // 生命周期 - 销毁完成
activated() {
} // 如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped lang="scss">
//@import url(); 引入公共css类
</style>