从输入类型编号

时间:2016-10-16 17:13:03

标签: javascript html html5 reactjs

我正在使用输入类型编号。如果无效,我如何从中获取值。例如,使用类型编号和打印只是' 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>

2 个答案:

答案 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>