4-form表单的双向绑定
2024-09-04 20:29:02
概念:表单中的input框等其他标签,值变化时会触发函数,改变state中的值,反过来修改state中的值也会改变input框中值的展现
实现:利用类组件里的state属性来实现(setState会再次渲染) 利用input框中的checked属性改变选中状态
文本输入框:
用户名:<input type="text" value={this.state.inputvalue} onChange={this.inputchange}/>
触发函数:
inputchange = (e)=>{
console.log(e);
console.log(e.target.value);
this.setState({inputvalue:e.target.value}); //改变state中的值
}
单选框:
如何做到互斥?利用name属性,值一样,属于一组,自动互斥
性别:<input type="radio" value='男' checked={this.state.gendervalue==='男'?true:false} onChange={this.genderchange} name='gender'/>男
性别:<input type="radio" value='女' checked={this.state.gendervalue==='女'?true:false} onChange={this.genderchange} name='gender'/>女
触发函数:
genderchange = (e)=>{
console.log(e.target.value);
this.setState({gendervalue:e.target.value});//设置state的值
}
复选框:
爱好:{this.state.hobby.map((item,index)=>{
return (
<span> <input type='checkbox' value={item.name} checked={item.checked} onChange={this.hobbychange.bind(this,index)}/>{item.name} </span> );
}
}
触发函数:
hobbychange = (index,e)=>{
let hobbyc = this.state.hobby; //先用变量接收state的值,再修改值
hobbyc[index].checked = !hobbyc[index].checked;
this.setState({hobby:hobbyc}); //再把变量赋值给state值
}
//错误写法
this.setState({hobby[index].checked:!hobby[index].checked});
//会报错,不支持这样写
最新文章
- js—模糊查询
- codeforces 732E(贪心)
- web前端响应式
- QT toLocal8Bit奇怪的问题
- 对OpenGL的GLFrame框架进行的扩展截至2014年11月29日
- servlet+ajax+json字符串后台传入,前端解析并把数据循环填入表格实例
- android开发关于和使用本机内存、内置存储卡和外置存储卡 (转)
- openSuse使用技巧
- Android L(5.0)源码之手势识别OnTouchListener
- Mysql之单表记录查询
- (function(){xxx})(); 写法解释
- 【线段树】Bzoj1798 [AHOI2009] 维护序列
- c# ListBox控件
- Notepadd ++ PluginManager安装
- webgl之观察三维空间
- maven配置阿里云仓库
- Supporting Right-to-Left Languages
- iptables的自定义链--子链
- 这可能是目前最全的Redis高可用技术解决方案总结
- java面试题08