EDIT:これは実際にはReactのバグです。これはReact 15.6.1に影響しますが、ではなく、 React 15.1.0です。 https://github.com/facebook/react/issues/10078私の非制御ラジオグループは、フォームのonChangeを無線要素ごとに1回だけトリガーします
は、わたしはあなたに制御されていないinput type="radio"
要素が含まれている私の親form
要素にchange
イベントリスナーを付けています。私は、フォームのchange
イベントリスナーは、ラジオオプションの1つが選択されるたびに呼び出されると考えています。
リスナーは、の各ラジオオプションに対して一度だけが呼び出されます。ラジオ・オプションのその後の変更は、ブラウザに表示されている間は、change
イベントをトリガーしません。
私は間違っていますか?ここで
は、コンソールでこれを実証しているCodepenです:https://codepen.io/yeahjohnnn/pen/yoxqpL
そして、ここのコードです:
class MyExample extends React.Component {
handleFormChange(event) {
console.log('Form change. Value: ', event.target.value);
}
render() {
return (
<form onChange={this.handleFormChange}>
<label>
Text
<input type="text" name="textbox-field" />
</label>
<label>
<input type="radio" name="radio-button-group" value="a" /> A
</label>
<label>
<input type="radio" name="radio-button-group" value="b" /> B
</label>
<label>
<input type="radio" name="radio-button-group" value="c" /> C
</label>
</form>
);
}
}
それは動作しますが、onChange'は、フォーム上でそのように振る舞う理由 'あなたの答えは説明しません。 – kaveh
入力要素のクリックイベントを直接処理しているため、これは私のニーズには機能しません。私は私のフォームにバブルするために変更する必要があります。 –