2017-07-03 8 views
0

一个例子,我偶然发现:应用单一的onChange所有输入框

activate(event) { 
    console.log(event.target.value); 
} 

render() { 
    return ( 
    <div onChange={this.activate.bind(this)}> 
     <input type="radio" value="yes" name="confirm"/> Yes 
     <input type="radio" value="no" name="confirm"/> No 
    </div> 
    ) 
} 

这使得onChange处理被应用到父DIV:

我最近遇到下面的例子来的单选按钮而不是每个单独的单选按钮。

我的问题,这个问题:

  1. 有为什么onchange属性将被具体应用到组的单选按钮,而不是其他形式的一组元素的原因吗?
  2. 为什么不将所有表单域放在一个div或表单元素中,只有一个onChange属性?
  3. 这是特定于ReactJS,还是可以在基本JavaScript中做类似的事情?

回答

0

我不是一个亲反应,但我可以说几件事情:

  1. 你可以把的onChange在每个类型的输入,它的工作与选择,文本,复选框。

  2. 最好是直接在输入本身上使用onChange或任何监听器,为什么?因为在这个函数中,你可以很容易地用“事件”参数来引用你的输入,如下所示:

    function handleChange(event){ var value = event.target.value; }

如果你不这样做,你必须引用正确的输入,那可真的是一团糟。

+0

关于数字2,它似乎得到正确的目标,即使不直接将其应用于特定输入。如果再次查看我的示例,可以看到我在activate函数中使用了event.target.value,因此它被链接到适当的目标。 – kojow7