el-table表格里输入,并且校验。$index undifine问题

弹窗中是表格列表,input框输入,并校验

效果

实现思路:在 el-table外面套一层 el-form,引用 el-form的校验方式,但注意!!里面el-tabel的 input外面还有一层 el-form-item !!

el-form上加  :model="netForm" :rules="rules" ref="netForm"

el-table上加:ref="table-input" :data="netForm.networkCardsList"

el-table-column上加:label="网卡接口名称" show-overflow-tooltip

el-form-item上加::prop="'networkCardsList.' + scope.$index + '.interfaceName'" :rules="rules.interfaceName"

这四层都别忘记加!或者搞错位了!因为开发的时候,插槽插入了 input,在然后后面 rules啥的都加在el-table-column,结果发现报错$index undifine ,因为少了el-form-item

正确写法:如下

 <el-dialog title="网卡信息列表" :visible.sync="networkCardsVisibleEdit">
      <el-form class="base-form" :model="netForm" :rules="rules" ref="netForm" auto-complete="on">
        <el-table ref="table-input" :data="netForm.networkCardsList">
          <el-table-column label="网卡接口名称" show-overflow-tooltip>
            <template slot-scope="scope">
              <el-form-item :prop="'networkCardsList.' + scope.$index + '.interfaceName'" :rules="rules.interfaceName" class="all">
                <el-input v-model="scope.row.interfaceName" placeholder="请输入" clearable @focus="$refs.netForm.clearValidate(`networkCardsList.${scope.$index}.interfaceName`)"></el-input>
              </el-form-item>
            </template>
          </el-table-column>
          <el-table-column label="mac 地址" show-overflow-tooltip>
            <template slot-scope="scope">
              <el-form-item :prop="'networkCardsList.' + scope.$index + '.macAddress'" :rules="rules.macAddress" class="all">
                <el-input v-model="scope.row.macAddress" placeholder="请输入" clearable @focus="$refs.netForm.clearValidate(`networkCardsList.${scope.$index}.macAddress`)"></el-input>
              </el-form-item>
            </template>
          </el-table-column>
          <el-table-column label="ip 地址" show-overflow-tooltip>
            <template slot-scope="scope">
              <el-form-item :prop="'networkCardsList.' + scope.$index + '.ipAddress'" :rules="rules.ipAddress" class="all">
                <el-input v-model="scope.row.ipAddress" placeholder="请输入" clearable @focus="$refs.netForm.clearValidate(`networkCardsList.${scope.$index}.ipAddress`)"></el-input>
              </el-form-item>
            </template>
          </el-table-column>
          <el-table-column label="操作">
            <template slot-scope="scope">
              <el-button slot="reference" @click="delRow(scope.$index, scope.row)" size="mini" type="danger">删除</el-button>
            </template>
          </el-table-column>
        </el-table>
        <el-form-item style="margin: 0; text-align: center; padding-top: 20px">
          <el-button type="primary" @click="submit">确定</el-button>
          <el-button @click="cancelNetCard">取消</el-button>
        </el-form-item>
      </el-form>

      <!-- <div >
          <el-button @click="submit">提交</el-button>
        <el-button @click="cancelNetCard">取消</el-button>
      </div> -->
    </el-dialog>
export default {
  name: 'productList',
  data() {
    return {
      netForm: {
        networkCardsList: [
          {
            interfaceName: '',
            macAddress: '',
            ipAddress: '',
          },
        ],
      },
      networkCardsVisible: false,
 rules: {
        interfaceName: [{ max: 200, message: '网卡接口名称最多可输入200个字符', trigger: 'change' }],
        macAddress: [{ max: 200, message: 'mac 地址最多可输入200个字符', trigger: 'change' }],
        ipAddress: [{ max: 200, message: 'ip 地址最多可输入200个字符', trigger: 'change' }],
      },
 }
 }
}

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值