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日

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装
  • ¥40 复杂的限制性的商函数处理