• element中表单验证实例


    名称不能为空,不能包含特殊字符

    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>
    

      

  • 相关阅读:
    js 生成 yyyy-mm-dd 格式的逼格姿势
    使用chrome联调不在同一个域的请求
    linux命令收集
    spring component-scan filter
    命令别名alias设置
    vi命令的使用
    Git中的文件状态和使用问题解决
    Git常用命令
    Maven
    MySQL命令
  • 原文地址:https://www.cnblogs.com/pangchunlei/p/12758436.html
Copyright © 2020-2023  润新知