Ant Design 针对数字输入框推出了专用的组件InputNumber支持步骤调整、数字精度、格式化等普通输入框没有的功能。
属性min表示允许输入的最小值 max最大值,step表示步数
<template>
<div>
<a-input-number id="inputNumber" step="2" :min="1" :max="10" v-model="value"
@change="onChange" />
当前值:{{ value }}
</div>
</template>
<script>
export default {
data() {
return {
value: 3,
};
},
methods: {
//输入值变化后的事件
onChange(value) {
console.log('changed', value);
},
},
};
</script>
例子
代码演示每个3位用逗号隔开,并对格式化后的字符串转换为数字
<template>
<div>
<a-input-number
:defaultValue="1000"
:formatter="formatter"
:parser="parser"
@change="onChange"
style="width:200px"
step="2"
/>
</div>
</template>
<script>
export default {
methods: {
//用逗号分隔数字
formatter(value){
return `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
},
//把格式化后的字符串转换为数字
parser(value) {
return value.replace(/\$\s?|(,*)/g, '');
},
//获取变化后的数字
onChange(value) {
console.log('changed', value);
},
},
};
</script>
例子
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Ant Design Vue InputNumber格式化例子</title>
<script src="//www.itxst.com/package/vue/vue.min.js"></script>
<script src="//www.itxst.com/package/ant-design-vue/antd.js"></script>
<link href="//www.itxst.com/package/ant-design-vue/antd.min.css" rel="stylesheet" />
<style>
body {
padding: 10px
}
</style>
</head>
<body>
<div id="app">
<a-input-number
:defaultValue="1000"
:formatter="formatter"
:parser="parser"
@change="onChange"
style="width:200px"
></a-input-number>
</div>
<script>
const { LocaleProvider, locales } = window.antd;
var app = new Vue({
el: '#app',
data() {
return {
value: 3,
};
},
methods: {
//用逗号分隔数字
formatter(value){
return `$ ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
},
//把格式化后的字符串转换为数字
parser(value) {
return value.replace(/\$\s?|(,*)/g, '');
},
//获取变化后的数字
onChange(value) {
console.log('changed', value);
},
}
});
</script>
</body>
</html>