React中的表单元素
来源:互联网 发布:上海铭创软件 编辑:程序博客网 时间:2024/05/21 10:19
在web应用开发当中,表单还是很重要的元素。
1.应用表单组件有:文本框(input、textarea)、单选按钮和复选框、Select组件。
文本框:文本框的状态改变即文本框中的内容的改变。此时的state应该是inputValue或者是textareaValue。在状态改变时的处理函数应该是
handleInputChange(e){ this.setState({ inputValue:e.target.value });}
单选按钮和复选框:
1.单选按钮:它的状态state就是radioValue
this.state = { radioValue:''};//在这里只是设置了radioValue的值,因为单选按钮本来就是只有一个按钮被选中//当用户点击单选按钮的时候,就会通过下面的函数获取到选中的按钮的value//即radioValuehandleChange(e){ this.setState({ radioValue:e.target.value, })}//下面通过===一次判断每个input标签的值和radioValue是否相等来判断checked的值是true还是false<input type="radio" value="male" checked={radioValue === 'male'} onChange = {this.handleChange}/><input type="radio" value="female" checked={radioValue === 'female'} onChange={this.handleChange}/>
2.复选框:它的状态是通过一个数组来保存的,因为复选,即就应该保存选中的多个复选框,以便用户进行操作,从而改变状态而重新渲染。
this.state = { coffee:[],}//通过一个数组来保存状态handleChange(e){ const {checked,value} = e.target; let {coffee} = this.state; //判断这个复选框是否被选中 if(checked && coffee.indexOf(value) === -1){ coffee.push(value); }else{ coffee = coffee.filter(i => i !== value); } this.setState({ coffee, });}
然后通过coffee.indexOf(‘aa’) 去遍历coffee这个数组,是否能找到和aa相同的字符串,来进行复选框checked是true还是false的判断。
<p>请你选择你最喜欢的咖啡</p><label> <input type="checkbox" value="aa" checked={coffee.indexOf('aa') !== -1} onChange={this.handleChange} /> aa</label><br/><label> <input type="checkbox" value="bb" checked={coffee.indexOf('bb') !== -1} onChange={this.handleChange} /></label>
3.Select组件:如果是单选,就用单个变量保存,如果是多选就用一个数组保存。
单选:
this.state = { area:'',}handleChange(e){ this.setState({ area:e.target.value, });}render(){ const {area} = this.state; return( <select value={area} onChange={this.handleChange}> <option value="beijing">北京</option> <option value="shanghai">上海</option> <option value="hangzhou">杭州</option> </select> )}
多选
this.state = { area:['beijing','shanghai'],};handleChange(e){ const {options} = e.target; //注意,这里返回的options是一个对象,并非数组 const area = Object.keys(options). filter(i => options[i].selected === true) .map(i => options[i].value); this.setState({ area, });}render(){ const {area} = this.state; return( <select multiple={true} value={area} onChange={this.handleChange}> <option value="beijing">北京</option> <option value="shanghai">上海</option> <option value="hangzhou">杭州</option> </select> );}
阅读全文
0 0
- React中的表单元素
- 6、React中的表单
- React.js中的表单
- React中的表单组件
- html中的表单元素
- 表单中的输入元素
- HTML中的表单元素
- html中的表单元素
- html中的表单元素总结
- JQiery选择器中的表单元素
- 详解HTML中的表单元素
- js中的表单元素操作
- React表单
- React -- 表单
- react-表单
- React表单
- react表单
- form表单中的元素 控件集
- codeforces 185C. Clever Fat Rat
- 编写优质嵌入式C程序
- HDU 2586 How far away(倍增法)
- linux rename批量改名
- Java的开发环境
- React中的表单元素
- 数据库常见问答
- java 排序之插入排序
- SSM架构下ehcatch缓存的配置
- Python通过BeautifulSoup爬取豆瓣读书网页内容
- 第三周 项目三 求集合并集
- java.sql.SQLException:Before start of result set解决方法
- 正确理解Spring事务和数据库事务和锁
- 数据分析系列目录