Необходимо, чтобы люди случайно набрали 2 десятичных знака в наборе полей ввода типа = число с шагом = любое. Я пробовал следующее безрезультатно.
$(function(){
$('input[type=number]').keyup(function(){
var newval=$(this).val().split('..').join('.');
$(this).val(newval);
});
});
$(function(){
$('input[type=number]').keyup(function(){
var newval=$(this).val().replace('..','.');
$(this).val(newval);
});
});
$(function(){
$('input[type=number]').keyup(function(){
var newval=$(this).val().replace(/\.\./g,'.');
$(this).val(newval);
});
});
все они просто вычеркивают значение или ничего не делают, и дубликаты десятичных знаков остаются.
Что-то вроде этого возможно? Использование типа 'text' not 'number'
let last = '';
document.getElementById('me').addEventListener('input', (e) => {
const match = e.target.value.match(/[-+]?\d*\.?\d*/);
if (match || e.target.value === '') {
last = match ? match[0] : '';
}
e.target.value = last;
}, false);
<input id="me" type="text" />
Кажется, работает нормально для меня на chrome 58. Не знаю, есть ли какие-либо дополнительные случаи.
спасибо за вход всех, что я закончил делать на клавиатуре, измените attr "type" на "text", запустите replace(), а затем измените его на "число".