han73748196 2021-11-15 20:25 采纳率: 66.7%
浏览 41
已结题

ElementUI点击按钮添加input无法验证

img

第一次使用element ui
如上图实现点击添加input之后,无法进行表单验证

<el-form  :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
 <div v-for="(item,index) in form.arrayData" :key="item.id" :prop="'form.arrayData.'+index+'.data'"  :rules="[{required: true, message: '请填写内容', trigger: 'blur'}]">
          <el-input  
            type="input"  
            placeholder="请输入网址"
            v-model="item.data"
            style="width: 70%;margin-top:10px;"
          >
          </el-input>
           <el-button type="danger"  icon="el-icon-remove-outline" circle  style="padding:5px; margin-top:0.5%" @click="deleteInput(item,index)"></el-button>
        </div>
         <el-button  icon="el-icon-circle-plus-outline" circle  style="padding:5px; margin-top:0.5%"  @click="addInput"></el-button>
</el-form>

:prop应该怎么修改。。
js代码:

 var Main = {
                data() {
                  return {
                      form: {
                          arrayData:[
                                {
                                    id:"",
                                    data:""
                                }
                            ],
                            dataNum:0,
                        },
                       
                        rules: {

                            data: [
                              { required: true, message: '请填写内容', trigger: 'blur' }
                            ]
                          },
                          
                  };
                },
                methods: {
                  
                    onSubmit(formName) {
                       
                        this.$refs[formName].validate((valid) => {
                            if (valid) {

                            } else {
                              console.log('error submit!!');
                              return false;
                            }
                          });
                      },
                    deleteInput(item,index){
                            if(this.form.arrayData.length<=1){//如果只有一个输入框则不可以删除
                              return false
                            }
                            this.form.arrayData.splice(index,1)//删除了数组中对应的数据也就将这个位置的输入框删除
                      },
                    addInput(item) {
                            console.log('addInput!');
                            if(this.form.dataNum >8)
                                {
                                 this.$message({
                                     showClose: true,
                                     message: '最多添加10条网址!',
                                     type: 'warning'
                                   });
                                }else
                                    {
                                    this.form.arrayData.push(//增加就push进数组一个新值
                                                {
                                                  id:this.form.dataNum++,
                                                  data:''
                                                }  )
                                    }
                        
                                
                          }
                  }
         };
        var Ctor = Vue.extend(Main)
        new Ctor().$mount('#app')

  • 写回答

1条回答 默认 最新

  • console.log( ) 2021-11-15 20:55
    关注

    用你的大概改了下

    
    <el-form  :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
      <el-form-item v-for="(item,index) in form.arrayData" :key="item.id"  prop='data'>
              <el-input  
                type="input"  
                placeholder="请输入网址"
                v-model="item.data"
                style="width: 70%;margin-top:10px;"
              >
              </el-input>
               <el-button type="danger"  icon="el-icon-remove-outline" circle  style="padding:5px; margin-top:0.5%" @click="deleteInput(item,index)"></el-button>
    
      </el-form-item>
        <el-button  icon="el-icon-circle-plus-outline" circle  style="padding:5px; margin-top:0.5%"  @click="addInput"></el-button>
    
    </el-form>
    

    ```

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月24日
  • 已采纳回答 11月16日
  • 创建了问题 11月15日

悬赏问题

  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂