Определение содержимого ввода чисел - PullRequest
0 голосов
/ 12 марта 2019

Если у меня есть ввод номера типа, как я могу узнать, что набрал пользователь, если он не набрал число?

<input type="number" onchange="console.log(this.value)">

Выше показана пустая строка, если я наберу «а» на входе.Как я могу получить фактическое содержание ввода?

Ответы [ 4 ]

1 голос
/ 12 марта 2019

Это пример type:number не набрал текст или фрахтователь только разрешенный номер, вы можете проверить это

<input type="number" oninput="console.log(this.valueAsNumber)">
1 голос
/ 12 марта 2019

Вы можете использовать любое из следующих событий:

onkeyup = "console.log(event.key)"
onkeypress = "console.log(event.key)"
onkeydown = "console.log(event.key)"

Но они сработают, как только они введут значение ключа.

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

0 голосов
/ 12 марта 2019

Вы не можете получить текстовый ввод с номера типа ввода, поэтому вы можете сделать это следующим образом

в html

<input type="text" onchange="detectNumber(this.value)" id = 'number_input'">

в js

let numberInput = document.querySelector('#number_input');
function detectNumber(value){
  if(isNaN(parseInt(value))){
     console.log('Text input!!')
     numberInput.value = value.split('').pop().join('');
  }

}
0 голосов
/ 12 марта 2019

Боюсь, что нет способа, так как он предназначен только для приема цифр. Однако вы можете, по крайней мере, получить информацию, если пользователь не ввел число, переключившись на событие oninput и оценив valueAsNumber .

So

<input type="number" oninput="console.log(this.valueAsNumber)">

вернет NAN , если это не число.

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