Vue
by kabanoki
HTML
<link rel="stylesheet" href="https://unpkg.com/bootstrap/dist/css/bootstrap.min.css">
<script src="https://unpkg.com/[email protected]/dist/cleave.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue-cleave.min.js"></script>
<div id="app">
<div class="form-group">
<label>Enter credit card</label>
<cleave type="tel" v-model="form.cardNumber" class="form-control" :options="options.creditCard"></cleave>
<small class="form-text text-muted">{{form.cardNumber}}</small>
</div>
<div class="form-group">
<label>Enter date with <code>:raw="false"</code></label>
<cleave v-model="form.date" class="form-control" :raw="false" :options="options.date" placeholder="yyyy-mm-dd"></cleave>
<small class="form-text text-muted">{{form.date}}</small>
</div>
<div class="form-group">
<label>Currency</label>
<cleave v-model="form.number" class="form-control" :options="options.number"></cleave>
<small class="form-text text-muted">{{form.number}}</small>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
li {
margin: 8px 0;
}
h2 {
font-weight: bold;
margin-bottom: 15px;
}
del {
color: rgba(0, 0, 0, 0.3);
}
Vue
const Cleave = window['VueCleave'];
Vue.use(Cleave);
new Vue({
el: '#app',
data: {
form: {
cardNumber: null,
date: null,
number: null,
},
options: {
creditCard: {
creditCard: true,
delimiter: '-',
},
date: {
date: true,
datePattern: ['Y', 'm', 'd'],
delimiter: '-',
},
number: {
prefix: '¥ ',
numeral: true,
numeralPositiveOnly: true,
noImmediatePrefix: true,
rawValueTrimPrefix: true,
numeralIntegerScale: 9,
numeralDecimalScale: 2
},
}
},
});