3 回答
TA贡献1828条经验 获得超6个赞
这是因为您将输入类型设置为数字。所以你只能使用数字。
但是,如果要强制用户仅输入数字,则可以执行以下操作:
<div id="app">
<input type="text" :placeholder="placeholderPrice" v-model="price" @keypress="mustNumber"/>
<div class="price">
<p v-if="price !== ''">
</p>
{{ price }}
</div>
</div>
new Vue({
el: "#app",
data: {
price: "£",
},
methods: {
inputPrice(e) {
this.price = `£${e.target.value}`;
},
mustNumber($event) {
let keyCode = $event.keyCode ? $event.keyCode : $keyCode;
// only allow number and one dot
if (
(keyCode < 48 || keyCode > 57) &&
(keyCode !== 46)
) {
$event.preventDefault();
}
}
}
})
TA贡献1871条经验 获得超8个赞
您需要屏蔽的输入。例如,您可以使用 https://vuejs-tips.github.io/v-money/ 库
<template>
<div>
<money v-model="price" v-bind="money"></money> {{price}}
</div>
</template>
<script>
import {Money} from 'v-money'
export default {
components: {Money},
data () {
return {
price: 123.45,
money: {
decimal: ',',
thousands: '.',
prefix: '£ ',
suffix: '',
precision: 2,
masked: false
}
}
}
}
</script>
添加回答
举报