ElementUI Forms

by fujifiddle

HTML

<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui/lib/index.js"></script>
<div id="app">

  <el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" class="demo-ruleForm">
    <el-form-item label="Age" prop="age">
      <el-input v-model.number="ruleForm2.age"></el-input>
    </el-form-item>
    <el-form-item label="Age" prop="age">
      <el-input v-model.number="ruleForm2.age"></el-input>
    </el-form-item>
    <el-form-item label="Age" prop="age">
      <el-input v-model.number="ruleForm2.age"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submitForm('ruleForm2')">Submit</el-button>
    </el-form-item>
  </el-form>

</div>

CSS

@import url("//unpkg.com/element-ui/lib/theme-default/index.css");

JavaScript

var Main = {
    data() {
      var checkAge = (rule, value, callback) => {
        if (!value) {
          return callback(new Error('Please input the age'));
        } else if (!Number.isInteger(value)) {
        	callback(new Error('Please input digits'));
        } else {
        	if (value < 18) { 
          callback(new Error('Age must be greater than 18')); 
          } else {
          	callback();
          }
        }
      };
      return {
        ruleForm2: {
          pass: '',
          checkPass: '',
          age: ''
        },
        rules2: {
          age: [
            { validator: checkAge, 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();
      }
    }
  }
  
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')