Arvin Chen 2022-01-09 01:34 采纳率: 100%
浏览 39
已结题

v-model 输入框 输入非法字符 输入框的显示为非法字符不显示绑定的值

电商项目中购买商品输入框中做了逻辑判断输入非法字符不让修改v-model绑定的变量,但是页面还是显示输入的非法字符

              < div class="controls">
                <input autocomplete="off" class="itxt" v-model.lazy="defaultnum">
                <a href="javascript:" class="plus" @click="defaultnumadd">+</a>
                <a href="javascript:" class="mins" @click="defaultnumred">-</a>
              </div>

<script>
data(){
      return{
        num:0
      }
    },
computed:{
 defaultnum:{
      get:function(){
        return this.num
      },
      set:function(newNum){
        if(+newNum??''!==''){
           return this.num=Math.floor(newNum)
        }
        else{
                   return this.num  //这里怎么能做一个刷新之类的操作呢?因为值没变所以他不刷新就会显示非法字符求教!!!!
        }
      }
    }
},
methods:{
   
      defaultnumadd(){
        this.num=+this.num+1 //因为输入的值是字符串所以+this.num转化一下不然就变成拼接了
      },
      defaultnumred(){
        this.num=+this.num-1 
        this.num>=0?this.num:this.num=0

      }
    },
</script>

运行结果及报错内容

如果input输入框 输入一个f 或者其他字母或者非法字符 后 页面就显示这个非法字符 ,我想让他显示我的合法值怎么弄?

我想要达到的结果

让页面显示的和我的绑定值一致

  • 写回答

1条回答 默认 最新

  • 关注

    把this.num 先赋值为别的,再赋值回原来的值就可以了

    computed: {
        defaultnum: {
            get: function() {
                return this.num
            },
            set: function(newNum) {
                if (!isNaN(Math.floor(newNum))) {
                    this.num = Math.floor(newNum)
                } else {
                    let r = this.num;
                    this.num = -1;
                    this.num = r;
                }
            }
        }
    },
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月17日
  • 已采纳回答 1月9日
  • 创建了问题 1月9日

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价