【发布时间】:2020-01-16 09:33:23
【问题描述】:
我想在输入时在我的数字中添加分隔符,但它不起作用。
代码
<el-input-number v-model="form.qty" style="width: 100%;" id="test" placeholder="Quantity" controls-position="right" v-on:keyup="handleChange" :min="1"></el-input-number>
methods: {
handleChange: function(value) {
let vm = this;
console.log(value);
const result = value.toString().replace(/\D/g, "")
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
Vue.nextTick()
.then(function () {
vm.form.qty = result
});
},
}
问题
目前,当我输入数字时没有逗号添加到输入字段,但是当我将我的值发送到后端时,它会用逗号发送它。。 p>
我需要什么
我需要的是与我上面解释的完全相反的行为,
- 在视图中显示带逗号的数字
- 不带逗号将其发送到后端
有什么想法吗?
【问题讨论】:
-
要发送干净的值,我建议您使用@输入事件。用于过滤值使用 @change 事件
-
@MaksimTikhonov 好的!我已将其更改为
@change="handleChange"现在呢?我仍然无法在我的输入字段中获得任何更新:/ -
因此您必须在更改事件上格式化值并在发送到后端之前在 inout 上清除它
-
...........怎么样?
-
如果你想发送干净的整数使用: const cleanValue = parseInt(value.split(',').join(''));如果要使用逗号显示数字,请使用 String(value).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");跨度>
标签: javascript vue.js vuejs2