Почему event.target.value не включает "." и «e» для ввода номера?

Я использую Preact:

<input type="number" onKeyup={event => console.log(event.target.value)} />

Если я введу период или «е», он не будет отображаться как часть event.target.valueдо тех пор, пока я не введу через него другую цифру.

Например,

Если входное значение 123, 123регистрируется.

Если входное значение 123., 123регистрируется.

Если входное значение 123.., 123регистрируется.

Если входное значение 123.4, 123.4регистрируется.

Почему он ведет себя так? Есть ли способ получить фактический ввод (без удаления type="number")?

javascript,html,reactjs,preact,

0

Ответов: 2


2

numberВход может содержать целые числа, а также числа с плавающей точкой.

Так 123.как это целое число, на входе будет возвращено целое число123

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

123.4Невозможно возвращать строки, например, из типа ввода номера, поскольку он не предназначен для этого.


0

точка состоит в том, что e является выражением e? такая же, как и e2, без какой-либо цифры после того, как она неполна и число не изменилось, поэтому «e» не сохраняется.

Точно так же. Число с точкой в ??конце - это номер, поэтому он не будет сохранен.

Вы должны изменить его на текст, или ваш «e» в последней строке не сохраняется.

JavaScript, HTML, reactjs, Упреждение,
Похожие вопросы