确定数字输入的内容

问题描述 投票:0回答:4

如果我输入了类型编号,如果他们没有键入数字,我如何找出用户键入的内容?

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

如果我在输入中键入“a”,则上面显示一个空字符串。如何获得输入的实际内容?

javascript html html5
4个回答
1
投票

这是type:number没有输入任何文本或租船人的例子,只允许你可以检查这个号码

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

1
投票

您可以使用以下任何事件:

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

但是一旦输入关键值,这些就会触发。

在您的用例中,用户将永远无法在输入元素中实际输入除数字之外的任何内容,因为它被设置为type =“number”。您可以尝试使用type =“text”来区分数字和其他字符之间的值。


0
投票

我担心没有办法,因为它只是为了接受数字。但是,如果用户没有通过切换到oninput事件并评估valueAsNumber来输入数字,则至少可以检索。

所以

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

如果它不是数字,将返回NAN。


0
投票

您无法从输入类型编号获取文本输入,因此您可以这样做

在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('');
  }

}
© www.soinside.com 2019 - 2024. All rights reserved.