vue v-model双向绑定有两种状态的输入框(待填坑寻求更优解

 

由于想实现上述的效果,当勾选checkbox时,法人姓名/法人手机号 v-model绑定联系人/手机号,

取消勾选时,v-model绑定不相同的法人姓名和手机号

 

最开始查阅资料,想让v-model绑定一个动态变量或者计算属性

但是计算属性的话,只有联系人/手机号变动时(移开焦点 trigger:blur),才会触发计算

想要一直监听,让下面随上面变化,得使用watch

 

v-model和watch结合的方法:

<el-form-item label="法人姓名" prop="legalPerson">
  <el-input v-model.trim="orderForm.legalPerson" placeholder="请输入法人姓名" :disabled="orderForm.isSame"></el-input>
  <el-checkbox label="法人与经办人一致" v-model="orderForm.isSame" @change="checkSame"></el-checkbox>
</el-form-item>
<el-form-item label="法人手机号" prop="legalPersonMobile">
  <el-input v-model="orderForm.legalPersonMobile" placeholder="请输入法人手机号" :disabled="orderForm.isSame"></el-input>
</el-form-item>

watch是保证,勾选了以后,下面属性的值会随上面的值实时变动

    watch: {
        'orderForm.contact': function () {
            if(this.isSame === true){
              this.orderForm.legalPerson = this.orderForm.contact
            }
        },
        'orderForm.mobile': function () {
            if(this.isSame === true){
              this.orderForm.legalPersonMobile = this.orderForm.mobile
            }
        }
    },

还需要这个点击事件是保证,如果上面的属性输入完成了以后点击选项框,能够让属性直接copy到下面

        checkSame () {
          this.isSame = !this.isSame
          if(this.isSame === false){
            this.orderForm.legalPerson = ""
            this.orderForm.legalPersonMobile = ""
          }else{
            this.orderForm.legalPerson = this.orderForm.contact
            this.orderForm.legalPersonMobile = this.orderForm.mobile
          }
        },

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值