react实现表单组件
来源:互联网 发布:android 打开淘宝链接 编辑:程序博客网 时间:2024/06/04 21:08
1、首先,引入js必不可少
<script src="js/react.js"></script>
<script src="js/react-dom.js"></script>
<script src="js/browser.min.js"></script>
2、废话少说,直接贴代码(注:这里把单选框和复选框定义成了两个子组件,子组件会调用父组件的方法)
<body>
<h3>react表单事件</h3>
<div id="form"></div>
<!--js代码-->
<script type="text/babel">
var FormApp=React.createClass({
getInitialState:function(){
return {
inputVlaue:'默认用户名',
selectValue:'A',
radioValue:'22',
checkboxValue:[],
textareaValue:'默认备注内容'
}
},
handleRadio:function(e){
this.setState({
radioValue:e.target.value
})
},
handleCheckbox:function(e){
var checks=this.state.checkboxValue.slice();
var newVal=e.target.value;
var index=checks.indexOf(newVal);
if(index == -1){
checks.push(newVal);
}else{
checks.splice(index,1);
}
this.setState({
checkboxValue:checks
})
},
handleSubmit:function(e){
e.preventDefault();
var formData={
uname:this.refs['uname'].value,
age:this.refs['age'].value,
remark:this.refs['remark'].value,
radioValue:this.state.radioValue,
checkboxValue:this.state.checkboxValue
}
console.log(formData);
},
render:function(){
return (
<form onSubmit={this.handleSubmit}>
<input type="text" defaultValue={this.state.inputVlaue} ref="uname"/>
<br/>
<select defaultValue={this.state.selectValue} ref="age">
<option value="A">10-20</option>
<option value="B">20-30</option>
<option value="C">30-40</option>
<option value="D">40-50</option>
</select>
<br/>
<RadioButtons handleRadio={this.handleRadio}/>
<br/>
<CheckButtons handleCheckbox={this.handleCheckbox}/>
<br/>
<textarea defaultValue={this.state.textareaValue} ref="remark"></textarea>
<button type="submit">提交</button>
</form>
)
}
})
//单选按钮
var RadioButtons=React.createClass({
render:function(){
return (
<div>
<span>请选择年龄</span>
<input onChange={this.props.handleRadio} name="age" type="radio" value="15"/>15
<input onChange={this.props.handleRadio} name="age" type="radio" value="22" defaultChecked/>22
<input onChange={this.props.handleRadio} name="age" type="radio" value="33"/>33
</div>
)
}
})
//多选按钮
var CheckButtons=React.createClass({
render:function(){
return (
<div>
<input onChange={this.props.handleCheckbox} name="like" type="checkbox" value="足球"/>
<input onChange={this.props.handleCheckbox} name="like" type="checkbox" value="篮球"/>
<input onChange={this.props.handleCheckbox} name="like" type="checkbox" value="游泳"/>
</div>
)
}
})
var FormCont=ReactDOM.render(
<FormApp />,
document.getElementById("form")
)
</script>
</body>
- react实现表单组件
- React的表单组件
- React中的表单组件
- 浅谈React表单组件
- react demo13 (根据组件属性状态this.state实现表单实时监控)
- [React网络整理]React之表单组件的学习笔记
- 【React】 React的优点+实现分页组件
- React实现组件间互斥点击
- react实现的面板组件
- react实现筛选条件组件
- 翻译 | 玩转 React 表单 —— 受控组件详解
- 利用react-redux实现react组件数据之间数据共享
- React-组件渲染和更新的实现
- React+Reflux 实现组件间通信
- React实现分页组件(简短版)
- React表单
- React -- 表单
- react-表单
- 让Spring自动扫描和管理Bean
- 将String类型转换成固定形式的String类型时间
- pdf转换成jpg在线转换的方法分享
- jwplayer 播放 red5服务器上的视频资源
- Android从服务器获取版本号并下载安装最新版的应用
- react实现表单组件
- Tomcat配置Https报错-Connector attribute SSLCertificateFile must be defined when using SSL with APR
- 算法之网格。。
- 小demo,自己留着练手//getElementsByTagName
- 使用JdbcTemplate模板时传递的参数Map和Object []数组
- Out of Memory,Matlab
- Python下调用json.dumps中文显示问题及解决办法
- angular之页面跳转隐藏tab
- 深入理解HashMap