Из Beufy doc я получаю, что <b-input>
по сути является расширением собственного поля <input>
, поэтому оно принимает атрибут, который будет принимать собственный ввод.
На данный момент, невозможно полностью отфильтровать определенные символы, используя чистые атрибуты HTML, такие как pattern="\d+"
.
. Что вы можете сделать, это использовать прослушиватель событий «keydown», чтобы отфильтровать эти символы, используя собственный event.preventDefault()
по соответствующим клавишам .Конечно, мы могли бы использовать родной <input type="number">
, чтобы помочь в целом.
const app = new Vue({
el: '#app',
methods: {
filterKey(e){
const key = e.key;
// If is '.' key, stop it
if (key === '.')
return e.preventDefault();
// OPTIONAL
// If is 'e' key, stop it
if (key === 'e')
return e.preventDefault();
},
// This can also prevent copy + paste invalid character
filterInput(e){
e.target.value = e.target.value.replace(/[^0-9]+/g, '');
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<input
type="number"
step="1"
min="0"
@keydown="filterKey"
// OR
@input="filterInput"
>
</div>