今天在使用element ui做表单验证的时候遇到了问题,表单中命名有内容,element ui却始终提示不能为空,源代码如下:
<el-form
ref='login'
:rules='rules'
:model='form'
label-width='0'
style='width:100%;'
@keydown.enter.native='submit'
@submit.native.prevent
>
<el-form-item prop='userId'>
<el-input v-model='form.userID' placeholder='请输入用户ID' type='text' @blur='onRoleChange'></el-input>
</el-form-item>
</el-form>
data() {
form: {
userID: '',
},
rules: {
userId: [
{required: true, message: '请输入 userID', trigger: 'blur'},
{validator: checkUserID, trigger: 'blur'},
],
},
}
问题就出在prop和form表单的v-model中的字段不一致,源码中prop为userId
,全部统一使用userID
,问题解决!!
同时注意,若<el-form-item>
中不加 prop 属性,表单验证也是不起作用的。