Ant Design Vue中FormModel表单报错:TypeError: originalEvents.change.apply is not a function

写FormModel表单时出现了要同时使用 v-model 和 change方法 的需求

<a-form-model-item label="应用" prop="clients">
            <a-select
              show-search
              v-model="clearSelect"
              @search="searchClient"
              @change="changeClient"
              placeholder="请输入或选择应用">
              <a-select-option v-for="item in clientList" :key="item.id" :item="item">
                {{item.clientId}}
              </a-select-option>
            </a-select>
          </a-form-model-item>

结果下拉框无法使用了,并出现了以下报错
TypeError: originalEvents.change.apply is not a function
错误的意思是change.apply未定义

原因在管网FormModel文档的API处有提醒:
在这里插入图片描述
意思就是From.Item把input、select等表单项的blur、change事件劫持了,用来做自动效验,如果我们要给input、select写blur、change怎么办呢?

按照官网的写法做,但是要注意几个点:

1、要给a-form-model-item设置一个ref引用名称。

2、autoLink要设置成false,表示是否自动关联表单域,对于大部分情况都可以使用自动关联,如果不满足自动关联的条件,可以手动关联。

3、定义change事件,最后写上:this.$refs.clients.onFieldChange(),用于表单的自动效验。

最后完整的代码:

<a-form-model-item label="应用" prop="clients" ref="clients" :autoLink="false">
            <a-select
              show-search
              v-model="clearSelect"
              @search="searchClient"
              @change="changeClient"
              placeholder="请输入或选择应用">
              <a-select-option v-for="item in clientList" :key="item.id" :item="item">
                {{item.clientId}}
              </a-select-option>
            </a-select>
          </a-form-model-item>
changeClient(value) {
  console.log(value)
 // TODO
  this.$refs.clients.onFieldChange()
}

clients 与 ref="clients"内容对应
onFieldChange() 对应rules的触发方式 change
onFieldBlur() 对应rules的触发方式 blur

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值