使用 Vue.js 仅允许用户在文本框中键入 货币 等值
原文由 Saviah Kao 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 Vue.js 仅允许用户在文本框中键入 货币 等值
原文由 Saviah Kao 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于带有类型编号的输入,这是我们解决的问题:
<input type="number" v-model.number="price" @input="handleInput">
data () {
return {
price: null,
previousPrice: null
}
},
methods: {
handleInput (e) {
let stringValue = e.target.value.toString()
let regex = /^\d*(\.\d{1,2})?$/
if(!stringValue.match(regex) && this.price!== '') {
this.price = this.previousPrice
}
this.previousPrice = this.price
}
}
这个想法是检查用户的输入结果。如果它与所需的正则表达式模式不匹配,那么我们使用 previousPrice
将数据重置回其之前的状态。演示: https ://jsfiddle.net/edwardcahyadi/qj9mw5gk/2/
原文由 Edward Cahyadi 发布,翻译遵循 CC BY-SA 4.0 许可协议
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
工作示例: https ://jsfiddle.net/0s14cbqx/
在模板中:
<input placeholder="Name a price" v-model="price" @keypress="onlyForCurrency">
在 js 中:
这样,用户只能输入数字和一个点,不能输入小数点后两位。