VUE+elementui 表单动态添加input

 

<el-dialog title="基础信息" :visible.sync="baseOpen" width="80%" @close="baseInfoClose"
               v-dialog-drag :close-on-click-modal="false">
      <el-form ref="baseForm" :model="baseForm" :rules="baseRules" label-width="120px">
        <el-row v-for="(item, index, i) in personalInfo.expertiseListVo" :key="item.id">
          <el-col :span="12">
            <el-form-item label="擅长领域" prop="item.content">
              <el-input v-model="item.content" class="el-input"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-button size="mini" type="text" icon="el-icon-circle-plus-outline" @click="addInput()">添加</el-button>
            <el-button size="mini" type="text" icon="el-icon-remove-outline" @click="delInput(item,index,i)">删除</el-button>
          </el-col>
        </el-row>
      </el-form>
 </el-dialog>

export default {
data() {
    return {
      //标签页显示
      activeName: "first",
      // 遮罩层
      loading: false,
      //当前登录用户
      userCode: store.getters.userCode,
      //员工档案信息
      personalInfo: {
        expertiseListVo: [{id:undefined,content:undefined}]
      },
      talentInventory: true,
      // 查询参数
      queryParams: {
        userCode: undefined,
        personal: true
      },
      // 是否显示基础信息弹出层
      baseOpen: false,
      // 基础信息表单
      baseForm: {},
    };
  },

  methods: {
    //添加一行方法
    addInput () {
      this.personalInfo.expertiseListVo.push({ id: undefined, content: undefined })
    },
    //删除当前行方法
    delInput(item,index){
      this.personalInfo.expertiseListVo.splice(index,1)
    },
  },
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue中使用Element UI实现动态可编辑的table并对input进行验证,首先需要在Vue项目中引入Vue和Element UI库,并在组件中注册所需的Element UI组件。 接下来,在组件的data中定义一个数组,用于存储格的数据。例如: ``` data() { return { tableData: [ {name: '张三', age: 18, email: 'zhangsan@example.com'}, {name: '李四', age: 20, email: 'lisi@example.com'} ], rules: { name: [ {required: true, message: '请输入姓名', trigger: 'blur'} ], age: [ {required: true, message: '请输入年龄', trigger: 'blur'}, {type: 'number', message: '年龄必须为数字', trigger: 'blur'} ], email: [ {required: true, message: '请输入邮箱', trigger: 'blur'}, {type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change']} ] } } } ``` 在组件的template中,使用el-table来展示格数据,并将每个元格的内容放在el-form-item组件中,同时绑定对应的验证规则。代码示例如下: ``` <el-table :data="tableData" style="width: 100%"> <el-table-column label="姓名"> <template slot-scope="scope"> <el-form-item :prop="'name' + scope.$index" :rules="rules.name"> <el-input v-model="scope.row.name" :placeholder="'请输入姓名'"></el-input> </el-form-item> </template> </el-table-column> <el-table-column label="年龄"> <template slot-scope="scope"> <el-form-item :prop="'age' + scope.$index" :rules="rules.age"> <el-input v-model="scope.row.age" :placeholder="'请输入年龄'"></el-input> </el-form-item> </template> </el-table-column> <el-table-column label="邮箱"> <template slot-scope="scope"> <el-form-item :prop="'email' + scope.$index" :rules="rules.email"> <el-input v-model="scope.row.email" :placeholder="'请输入邮箱'"></el-input> </el-form-item> </template> </el-table-column> </el-table> ``` 最后,在组件的methods中定义一个方法,用于提交数据并进行验证。代码示例如下: ``` methods: { submitForm() { this.$refs['form'].validate((valid) => { if (valid) { // 验证通过,提交数据 // TODO: 提交逻辑 } else { // 验证失败,进行错误提示 this.$message.error('请输入正确的数据'); } }); } } ``` 至此,我们实现了一个动态可编辑的table,并对input进行了验证。用户在编辑格数据时,输入的数据将被验证,只有通过验证的数据才能提交。如果数据不符合规则,会进行错误提示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值