所以我试图在reactjs中得到select
个元素的值,但就是想不出来.this.refs.selectElement.getDOMNode().value
总是以undefined
的形式出现.表单上的所有其他控件(如text
)都工作正常.有什么 idea 吗?是不是你不能通过refs
获得select
元素的值,而必须使用onChange
事件?
更新:
var TestSelectClass = React.createClass({
mixins: [Router.Navigation],
_handleDube: function(event) {
DubeActionCreators.DubeTest({
message: this.refs.message.getDOMNode().value,
tax: this.refs.tax.getDOMNode().value,
validity: this.refs.valid_for.getDOMNode().value
});
},
render: function() {
return (
<ReactBootstrap.ListGroup>
<textarea
className="form-control"
rows="3"
placeholder="Enter message"
ref="message" >
</textarea>
<div className="input-group">
<span className="input-group-addon" id="basic-addon1">$</span>
<input type="text" className="form-control" placeholder="10" aria-describedby="basic-addon1" ref="tax" />
</div>
<Input type="select" value="1" ref="valid_for">
<option value="1">1 hour</option>
<option value="2">1 day</option>
<option value="2">5 days</option>
</Input>
</ReactBootstrap.ListGroup>
)
}
});
更新: Solution
So, if anyone runs into something similar, apparently if you are using react-bootstrap you can't get to the Input
element if you have wrapped it in a ListGroup
. Either take it out from it or wrap all Input
elements in a <form>
tag. This solved my issue, thanks for all the help.