我正在使用输入类型编号。如果无效,我如何从中获取值。例如,使用类型编号和打印只是' e'这本身无效。
我正在使用React,但我认为这个问题非常笼统。
onChange(event) {
console.log(event.target.value) //is empty string when not using number
}
<form novalidate>
<input type="number" onChange={this.onChange}>
</form>
答案 0 :(得分:0)
我不会相信你,但我认为你正在寻求获得输入值。您希望定位value
,但您的代码没有此属性。在这种情况下,您需要将value ={this.state.value}
作为prop添加到输入标记中,并在构造函数中添加新状态。 this.state = {value: ''}
答案 1 :(得分:0)
根据我的发现,没有解决这个具体问题的方法。
获得它的唯一方法是将input
设置为type="text"
并在函数内决定有效性:
(来源:Validate decimal numbers in JavaScript - IsNumeric())
function onChange(event) {
if(!isNaN(parseFloat(event.value)) && isFinite(event.value)){
console.log("It's numeric: " + event.value);
}
else {
console.log("It's not numeric: " + event.value);
}
}
<input type="text" onChange="onChange(this)">
您必须以这种方式调用onChange JS函数onChange="onChange(this)"
并使用event.value而不是event.target.value
才能获得正确的结果。
function onChange(event) {
console.log(event.value)
}
<form novalidate>
<input type="number" onChange="onChange(this)">
</form>