element-ui radio多选框组验证问题,进行选择后提醒不消失

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的并没有消失,后台也没有报错

阅读 11.5k
2 个回答

首先你metheds等位置结构就不对,你是故意删了几个括号吧?还是你根本就没写对?其次element官方文档有示例:
https://element.eleme.cn/2.12...,打开连接可以直接跳到对应验证,
补充:~~~~刚试了下,你写的demo除了js代码又大括号问题,可以实现验证功能。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题