说我有以下React元素(example fiddle here):
var Hello = React.createClass({
getInitialState: function() {
return {parsed: false};
},
_parseEvent: function(event) {
var parser1 = event.currentTarget.selectedOptions[0].value;
var parser2 = event.target.value;
var parser3 = event.nativeEvent.srcElement.value;
if (parser1 && parser2 && parser3)
this.setState({parsed: true});
},
render: function() {
var parsing = "parsing worked";
return (
<div>
<select
onChange={this._parseEvent}>
<option value="----">----</option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<p>
{ this.state.parsed ?
{parsing}
: null}
</p>
</div>
);
}
});
React.render(<Hello name="World" />, document.getElementById('container'));
我正在使用三种方法来解析
<select>
元素的值。第一个在IE 10上不起作用,我知道这是每个my question here的错误。但是,在其他两种方法中,parser2
或parser3
,这是在React中获取<select>
元素值的正确方法吗?为什么?谢谢你的帮助! 最佳答案
使用在W3C兼容浏览器中将使用的内容:
event.target.value
这也与表单控制元素的类型无关。