input type="number", в alert value выводит пустоту когда я пишу 1- или 1-1
Столкнулся с такой проблемой, что мне нужно было, чтобы не вводился минус. Причем не только с клавы но и другими способами. Проблему я решил на половину. Дело в том что я смог сделать, чтобы минус не мог появляться самым первым в input и вроде бы решил 2ую часть проблемы с минусом в других частях числа. Но у меня перестала вводится точка.
<input type="number" id="bet">
var inputBet = document.getElementById("bet");
inputBet.oninput = function() {
//Запрещаем минус в input любыми способами(ctrl + v, перетаскивание мышкой и.т.д)
//В начале input
if (inputBet.value < 0) {
inputBet.value = inputBet.value / -1;
//В других местах
} else if (inputBet.value == "") {
inputBet.value = "";
}
}
Как решить проблему, чтобы минусов вообще не могло быть в input, а точки не затрагивались, при этом оставляя type="number"
Ответы (1 шт):
Автор решения: Aliero
→ Ссылка
Все, решение нашлось. nick_n_a спасибо за наводку.
inputBet.oninput = function() {
//Запрещаем все кроме цифр и точки любыми способами(ctrl + v, перетаскивание мышкой и.т.д)
inputBet.value = inputBet.value.replace(/[^\d.]*/g, '')
.replace(/([,.])[,.]+/g, '$1')
.replace(/^[^\d]*(\d+([.,]\d{0,5})?).*$/g, '$1');
}