首先,Element-UI已定義了常用的校驗,如
<el-form :model="numberValidateForm" ref="numberValidateForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="年齡" prop="age" :rules="[ { required: true, message: '年齡不能為空'}, { type: 'number', message: '年齡必須為數字值'} ]" > <el-input type="age" v-model.number="numberValidateForm.age" autocomplete="off"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('numberValidateForm')">提交</el-button> <el-button @click="resetForm('numberValidateForm')">重置</el-button> </el-form-item> </el-form> <script> export default { data() { return { numberValidateForm: { age: '' } }; }, 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>
如果,要用自定義的正則表達式來校驗,
只需要把上面的
:rules后面換成自己的正則表達式就可以了。如
:rules="[{ required: true, message: '必填項', trigger: 'blur' }, { pattern: "^[0-9]+$", message: '正則表達式只讓我輸入數字', trigger: ['blur', 'change'] }]"
稍有一點要注意的是,上面的pattern:后面,直接用引號引起來正則表達式,就可以,不需要加兩個斜杠。