Я пытаюсь предотвратить изменение входного значения для двух случаев.
Если есть
- множественный отрицательный знак "-" например. запретить ввод значения "- 1-2-3"
- , кратного "." , например. запретить ввод "1.2.3"
Для настольного браузера я могу добиться использования следующих функций.
function valueEntered(element, event){
var newVal = element.value
if(event.code==="Minus") {
if(element.value.length==0) return true // allow minus at start
element.value = -1*parseFloat(newVal) // change the sign of number
return false
}
else if(event.code==="Period") {
if(element.value.indexOf('.')>-1) return false
}
return true
}
<input type="number" style="border-radius: 5px;" onkeypress="return valueEntered(this, event)" />
Работает отлично. Но если я использую этот фрагмент в android веб-просмотре, это не мешает, как следует.