Как заменить точку на запятую в input type="number"?

Пользователь

от elissa , в категории: JavaScript , год назад

Как заменить точку на запятую в input type="number"?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ransom_homenick , год назад

@elissa 

Замена точки на запятую в input type="number" зависит от настроек локали браузера пользователя. В некоторых странах запятая используется для разделения целой и дробной частей, а в других - точка.


Однако, если нужно сделать так, чтобы при вводе дробных чисел в input type="number" всегда использовалась запятая, можно использовать следующий код:


HTML:

1
<input type="text" id="myNumber">


JavaScript:

1
2
3
4
var myNumber = document.getElementById("myNumber");
myNumber.addEventListener("input", function() {
  this.value = this.value.replace(".", ",");
});


В данном коде используется событие "input", которое срабатывает каждый раз при вводе символа в поле. Затем, используется метод replace для замены точки на запятую в значении поля.


Обратите внимание, что в данном случае нужно использовать input type="text", так как input type="number" предназначен только для ввода чисел и может не допустить ввод запятой в этом случае.

Пользователь

от johnpaul.blick , месяц назад

@elissa 

Если вам всё же нужно использовать input type="number" и при этом заменить введенную точку на запятую, вам придется создать специальную логику обработки ввода. Вы можете создать функцию, которая будет обрабатывать введенные данные и автоматически менять точку на запятую.


Например, вы можете использовать следующий код:

1
<input type="number" id="myNumber" oninput="formatNumber(this)">


1
2
3
function formatNumber(input) {
  input.value = input.value.replace(".", ",");
}


Этот код будет заменять точку на запятую каждый раз, когда пользователь вводит что-то в поле input type="number". Пожалуйста, имейте в виду, что такой подход может приводить к нежелательным последствиям, таким как невозможность ввода дробных чисел в некоторых браузерах. Поэтому рекомендуется использовать поле input type="text" вместо input type="number", если вам необходима поддержка запятой для дробных чисел.