Предотвратить неправильное изменение входного значения в android веб-просмотре - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь предотвратить изменение входного значения для двух случаев.

Если есть

  1. множественный отрицательный знак "-" например. запретить ввод значения "- 1-2-3"
  2. , кратного "." , например. запретить ввод "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 веб-просмотре, это не мешает, как следует.

1 Ответ

0 голосов
/ 07 марта 2020

Я доверял https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code, что говорит о том, что event.code будет работать и для android веб-просмотра, но это не так.

Также event.key поддерживает обнаружение только числовых значений c. Если я наберу -, ., ,; свойство event.key возвращает Unidentified.

Аналогично, свойство event.keyCode возвращает 229 для всех нажатий клавиш, указанных выше.

Так что на самом деле невозможно достичь того, чего я хочу сейчас в android веб-просмотре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...