element-ui 使用v-for循环渲染radio多选框组并设置验证,问题是进行选择后提醒不消失,正常情况下选择后应该会消失的,代码和相关效果图如下
<template>
<el-form :label-position="labelPosition" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" >
<el-form-item v-for="(item, index) in ruleForm.risk_list" :key='index'>
<h4 class='que-title'><strong>{{item.title}}</strong></h4>
<el-form-item :prop="item.id" v-if="typeof item.type === 'undefined'">
<el-radio-group v-model="item.id" class='questionnaire' v-for='(risk_item, risk_index) in item.list' :key='risk_index'>
<el-radio :label="risk_item" ></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="checkbox" v-else>
<el-checkbox-group v-model="ruleForm.checkbox" class='questionnaire' v-for='(risk_item, risk_index) in item.list' :key='risk_index'>
<el-checkbox :label='risk_index'>{{risk_item}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-form-item>
<el-button type="primary" style='width:100%' @click="submitForm('ruleForm')">提交</el-button>
</el-form>
</template>
<script>
export default{
data(){
return {
ruleForm: {
checkbox:[],
risk_list:[{
id:'1',
title:'1.您的年龄',
list:[
'18-30',
'30-50',
'50-65',
'65以上'
]
}, {
id:'2',
title:'2.您的工作是',
list:[
'党政机关人员',
'教职工',
'普通职工',
'农民',
'个体',
'其他_______'
]
}, {
type:'checkbox',
id:'3',
title:'3.关于您对“每月11万零用钱,见不到老公的”看法',
list:[
'很好,每月有11万还要老公干嘛',
'不要钱,求带走',
'倒贴把他带走吧',
'休了他,去找老实靠谱的程序员葛葛吧',
'女人还是独立干脆点',
'其他________'
]
}
},
rules: {
1:[
{ required: true, message: '请选择', trigger: 'change'}
],
2:[
{ required: true, message: '请选择', trigger: 'change'}
],
checkbox:[
{ type: 'array', required: true, message: '请至少选择一项', trigger: 'change'}
]
}
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.submitanswer=false;
} else {
console.log('error submit!!');
return false;
}
})
},
resetForm(formName) {
if(this.show===true)this.$refs[formName].resetFields();
}
}
}
</script>
点击提交,若有没选择的题目,会做出文字提醒,正常情况下完成未选题目后提醒会消失,BUT,
checkbox复选框提醒消失了,但radio的并没有消失,后台也没有报错
看官网的例子吧,https://element.eleme.io/#/zh...,搜rules
注意点:
trigger: 'change'
:label设置的值