3列的值是1列乘以2列计算得出的,并且1列和2列必须是正整数

 首先想到的是下图这种办法,用v-model.number 加校验,只要输入的是字符就会被替换成''空字符串,

但这种方法在用户点击字符键盘后输入的内容就会被替换成空字符,无法做后面的计算处理

后来改成type="number",这种做法虽然很好的处理了用户输入字符键盘的情况,但可以输入小数点,要求是必须是正整数。

el-input-number完美的处理了我的需求

:min是可输入的最小值

:max是可输入的最大值,比如要求最多输入三位数,那么最大数就是999

step-strictly是否只能输入 step 的倍数,也就是整数

controls-position="right"是后面的箭头选项样式在右边,如果不需要这个样式可以用穿透样式的方法隐藏

.el-input-number{

    ::v-deep{

        .el-input-number__decrease{

            display: none;

        }

        .el-input-number__increase{

            display: none;

        }

    }

}

el-input-number的默认值是:min的值,如果不需要默认值v-model的初始值为undefine就可以了

在1列和2列的输入框上写上计算3列的方法@input=“compute()”

el-input-number如果点击加减号没反应或者只能加一再点击没反应,从以下几点找:

vue2环境

1,data中的值有初始值

如果有初始值把初始值为null, 想给默认值的时候用this.$set(this.from3,"sampleCount",'7)这样赋值

2,这个值是从别的地方传来的,可能会有影响,深拷贝下

JSON.parse(JSON.stringify(内容))

vue3环境中, 可能是数据类型不匹配, 改为数字类型就好了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐