美文网首页
el-input-number直接在输入框输入内容v-model

el-input-number直接在输入框输入内容v-model

作者: 郝艳峰Vip | 来源:发表于2021-04-21 12:17 被阅读0次

    前言


    前提是element-ui版本为2.15.1及以下版本,因为说不定哪天element就会更新,解决这个问题

    最近在开发项目中,有一个需求是在el-input-number组件中直接输入值,然后离开鼠标直接mouseenter其他的button,这个时候要获取v-model的值,发现v-model的值并不会改变,于是就真疼,查elementui的issure发现是因为el-input-number在封装时并没有将直接输入的值赋值给v-model,然后自己细想一下使用@keyup事件把输进去的值在给到v-model.

    接下来是直接看代码,简单明了

    因为el-input-number`是在失焦后才对input输入框进行校验,但是我在hover另一个button的时候,其实并没有失焦,所以这个时候v-model的值并没有改变,我需要另辟蹊径,就是在keyup的时候把这个值给到v-model这样就算是不失焦我也可以拿到改变后的v-model的值

         <div class="size_select Quan_num_tity">
                  <el-input-number
                    v-model.number="choose_quantity"
                    :min="1"
                    :max="99"
                    :step="1"
                    step-strictly
                    @keyup.native="number_change($event)"
                  />
                </div>
              <div class="Pay_immediately" @mouseenter.stop="show_qr_area($event)">扫描二维码立即支付</div>
    
    <script>
    export default {
      data() {
        return {
                 choose_quantity: 1, //默认的选择购买的数
         }
      },
      mounted() {},
      methods: {
       
        number_change(e) {
      //在输入的时候就要判断只能输入正整数
          e.target.value = e.target.value.replace(/[^0-9]/g, '')
          //   然后在每次keyup时把值赋给v-model
          if (!e.target.value) {
           // 这里给undefined是因为不给值就会默认变为1,不会为空,导致用户输入不了别的数值
            this.choose_quantity = undefined
          } else {
            this.choose_quantity = e.target.value
          }
        },
    //  hover支付button时判断有没有填写数量
    show_qr_area(){
              if (!this.choose_quantity) {
            this.$message({
              message: 'Quantity cannot be empty !',
              type: 'warning',
            })
            return false
          }
      }
    
    
    },
    }
    </script>
    

    结束语

    到这里就是我的此次需求的解决方案,记录下来,方便后续自己学习使用。

    相关文章

      网友评论

          本文标题:el-input-number直接在输入框输入内容v-model

          本文链接:https://www.haomeiwen.com/subject/hbnalltx.html