React:表单
var MyForm = React.createClass({
getInitialState: function(){
return {value:'Hello'};
},
render: function(){
var value = this.state.value;
return (<input type="text" value={value} />);
}
});
var MyForm = React.createClass({
getInitialState: function(){
return {value:'Hello'};
},
handleChange: function(event){
this.setState({value:event.target.value});
},
render: function(){
var value = this.state.value;
return (<input type="text" value={value} onChange={this.handleChange}/>);
}
});
var MyForm = React.createClass({
render: function(){
return (<input type="text" defaultValue="Hello" />);
}
});
var MyForm = React.createClass({
handleChange: function(){
var value = this.refs.myinput.value;
console.log(value);
},
render: function(){
return (<input type="text" ref="myinput" onChange={this.handleChange} defaultValue="Hello" />);
}
});
<textarea>初始值</textarea>
//非约束
<textarea defaultValue="Hello" />
//约束
<textarea value={this.state.value} onChange={this.handleChange} />
//非约束
<select defaultValue="B">
<option value="A">A</option>
<option vlaue="B">B</option>
</select>
//约束
<select value={this.state.mySelect} onChange={this.handleChange}>
<option value="A">A</option>
<option vlaue="B">B</option>
</select>
//非约束
<select multiple="true" defaultValue={["A","B"]}>
<option value="A">A</option>
<option vlaue="B">B</option>
</select>
//约束
<select multiple="true" value={this.state.mySelect} onChange={this.handleChange}>
<option value="A">A</option>
<option vlaue="B">B</option>
</select>
//非约束
<input type="radio" defaultChecked="true" />
//约束
<input type="radio" checked={this.state.checked} onChange={this.handleChange} />
3.4 Focus
在React中,我们使用 autoFocus 属性来聚焦:
<input type="text" autoFocus="ture" />
当然,你也可以调用DOMNode的focus()方法来手动设置表单域聚焦。
总结
- 表单组件有两种类型:约束组件(有value值)和非约束组件(无value值或value为null)。
- 所有的 HTML 原生组件都支持 onChange 属性,而且可以用来监听冒泡的 change 事件,同时也提供了 event.target 来访问触发事件的DOM节点。
- 在React中,对于<textarea/>和<select/>组件,使用value和defaultValue来设置。
更多建议: