Skip to content

Currency Input ​

Поле ввода валюты с форматированием на лету. Форматирует по мере набора с настраиваемыми десятичным разделителем, разделителем тысяч, префиксом, суффиксом и точностью.

v-model:
vue
<script setup>
const amount = ref(null)
</script>

<template>
  <VxCurrencyInput
    v-model="amount"
    :options="{ prefix: '$ ', thousands: ',', decimal: '.', precision: 2 }"
  />
  <!-- Type: 1234567 → displays: $ 1,234,567.00 -->
  <!-- v-model: 1234567 (number) -->
</template>

Dollar Format ​

1234567.89
vue
<template>
  <!-- $ 1,234,567.89 -->
  <VxCurrencyInput :options="{ prefix: '$ ', thousands: ',', decimal: '.', precision: 2 }" />
</template>

Euro Format ​

50000
vue
<template>
  <!-- 50.000,00 € -->
  <VxCurrencyInput :options="{ suffix: ' €', thousands: '.', decimal: ',', precision: 2 }" />
</template>

Space as Thousands Separator ​

9999.99
vue
<template>
  <!-- 9 999.99 -->
  <VxCurrencyInput :options="{ thousands: ' ', decimal: '.', precision: 2 }" />
</template>

UZS (no decimals, space separator) ​

1500
vue
<template>
  <!-- 1 500 sum -->
  <VxCurrencyInput :options="{ suffix: ' sum', thousands: ' ', precision: 0 }" />
</template>

RUB Format ​

42000
vue
<template>
  <!-- 42 000,00 ₽ -->
  <VxCurrencyInput :options="{ suffix: ' ₽', thousands: ' ', decimal: ',', precision: 2 }" />
</template>

Prefix + Suffix ​

250.5
vue
<template>
  <!-- USD 250 .00 -->
  <VxCurrencyInput :options="{ prefix: 'USD ', suffix: ' .00', thousands: ',', precision: 0 }" />
</template>

Clearable ​

vue
<template>
  <VxCurrencyInput v-model="amount" :options="{ prefix: '$ ' }" clearable />
</template>

Sizes ​

vue
<template>
  <VxCurrencyInput size="sm" />
  <VxCurrencyInput />
  <VxCurrencyInput size="lg" />
</template>

Allow Negative ​

vue
<template>
  <VxCurrencyInput allow-negative />
</template>

Options Reference ​

KeyTypeDefaultDescription
decimalstring'.'Символ десятичного разделителя
thousandsstring','Разделитель тысяч (используйте ' ' для пробела)
prefixstring''Текст префикса (например, '$ ', '€ ')
suffixstring''Текст суффикса (например, ' USD', ' sum', ' ₽')
precisionnumber2Количество знаков после запятой
maskedbooleanfalseЕсли true, v-model возвращает форматированную строку

Props ​

PropTypeDefaultDescription
modelValuenumber | string | nullnullЗначение (v-model)
optionsCurrencyOptions{}Опции форматирования (см. выше)
placeholderstring'0.00'Placeholder
disabledbooleanfalseОтключить
readonlybooleanfalseТолько для чтения
clearablebooleanfalseКнопка очистки
size'sm' | 'default' | 'lg''default'Размер
allowNegativebooleanfalseРазрешить отрицательные значения

Events ​

EventTypeDescription
update:modelValue(v: number | string | null)Значение изменено
change(v: number | null)Значение изменено при потере фокуса
focus(e: FocusEvent)Получен фокус
blur(e: FocusEvent)Потерян фокус