如果我输入了类型编号,如果他们没有键入数字,我如何找出用户键入的内容?
<input type="number" onchange="console.log(this.value)">
如果我在输入中键入“a”,则上面显示一个空字符串。如何获得输入的实际内容?
这是type:number
没有输入任何文本或租船人的例子,只允许你可以检查这个号码
<input type="number" oninput="console.log(this.valueAsNumber)">
您可以使用以下任何事件:
onkeyup = "console.log(event.key)"
onkeypress = "console.log(event.key)"
onkeydown = "console.log(event.key)"
但是一旦输入关键值,这些就会触发。
在您的用例中,用户将永远无法在输入元素中实际输入除数字之外的任何内容,因为它被设置为type =“number”。您可以尝试使用type =“text”来区分数字和其他字符之间的值。
我担心没有办法,因为它只是为了接受数字。但是,如果用户没有通过切换到oninput事件并评估valueAsNumber来输入数字,则至少可以检索。
所以
<input type="number" oninput="console.log(this.valueAsNumber)">
如果它不是数字,将返回NAN。
您无法从输入类型编号获取文本输入,因此您可以这样做
在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('');
}
}