vue利用element-UI常见的注册表单

<template>

  <div>

    <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleForm" label-width="200px" class="demo-ruleForm">

      <el-form-item label="用户名" prop="user">

    <el-input v-model="ruleForm.user"></el-input>

  </el-form-item>

  <el-form-item label="邮箱" prop="email">

    <el-input v-model="ruleForm.email"></el-input>

  </el-form-item>

  <el-form-item label="密码" prop="pass">

    <el-input type="password" v-model.number="ruleForm.pass" autocomplete="off"></el-input>

  </el-form-item>

  <el-form-item label="确认密码" prop="checkPass">

    <el-input type="password" v-model.number="ruleForm.checkPass" autocomplete="off"></el-input>

  </el-form-item>


  <el-form-item>

    <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>

    <el-button @click="resetForm('ruleForm')">重置</el-button>

  </el-form-item>

</el-form>

  </div>

</template>

<script>

export default {

    name:"LoginView",

    data() {

      var checkUser = (rule, value, callback) => {

        console.log('user',value)

        if (!value) {

          return callback(new Error('用户名不能为空'));

        }else if(!/^[a-zA-Z0-9_-]{4,10}$/.test(value)){

            return callback(new Error('用户名为4到10的字母或数字或下划线'));

        }

         callback()

      };

      var checkEmail = (rule, value, callback) => {

        console.log('email',value)

        if (!value) {

          return callback(new Error('邮箱不能为空'));

        }else if(!/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(value)){

            return callback(new Error('邮箱格式为字母数字@下划线.符号'));

        }

         callback()

      };


      var validatePass = (rule, value, callback) => {

        console.log('pass',value)

        if (value === '') {

          callback(new Error('请输入密码'));

        } else {

          if (this.ruleForm.checkPass !== '') {

            this.$refs.ruleForm.validateField('checkPass');

          }

          callback();

        }

      };

      var validatePass2 = (rule, value, callback) => {

        console.log('pass2',value)

        if (value === '') {

          callback(new Error('请再次输入密码'));

        } else if (value !== this.ruleForm.pass) {

          callback(new Error('两次输入密码不一致!'));

        } else {

          callback();

        }

      };

      return {

        ruleForm: {

          pass: '',

          checkPass: '',

          age: '',

          email:""

        },

        rules: {

          pass: [

            { validator: validatePass, trigger: 'blur' }

          ],

          checkPass: [

            { validator: validatePass2, trigger: 'blur' }

          ],

          user: [

            { validator: checkUser, trigger: 'blur' }

          ],

           email: [

            { validator: checkEmail, trigger: 'blur' }

          ],


        }

      };

    },

    methods: {

      submitForm(formName) {

        this.$refs[formName].validate((valid) => {

          if (valid) {

            alert('submit!');

          } else {

            console.log('error submit!!');

            return false;

          }

        });

      },

      resetForm(formName) {

        this.$refs[formName].resetFields();

      }

    }

  }

</script>

<style>

</style>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容