react学习笔记(9)表单控件
1.表单控件的操作
1.数据双向绑定
demo1: 在输入框中输入或者删除数据时,可以实时监控。
class App extends React.Component {state = {val : ""}handleChange = (e) => {this.setState({val : e.target.value})}render(){return (<div><h1>form</h1><input type="text" value={this.state.val} onChange={this.handleChange}/><b>{this.state.val}</b></div>)}
}
ReactDOM.render(<App></App>,document.getElementById("app")
)
复制代码
初始效果:
当在输入框中输入数据时,在旁边会出现相同文字:
- 非受控(非约束性)表单控件: 用户输入的值获取不到
- 受控(约束性)表单控件: 让react管理表单的数据,能够监视数据的改变
2.onSubmit事件,当表单提交时会触发的事件
demo2:单选框,下拉列表,多选框,文本域的一些操作
class App extends React.Component {state = {user : "",sex : "",cityList : ["上海","江苏","浙江"],city : "" ,like : [{title: "篮球",checked: true},{title: "足球",checked: false},{title: "乒乓球",checked: false}],textArea : ""}//提交数据handleSubmit = (e) => {e.preventDefault(); //阻止默认事件console.log("用户名",this.state.user);console.log("性别",this.state.sex);console.log("城市",this.state.city);console.log("爱好",this.state.like);console.log("介绍",this.state.textArea);}//更新用户名handleUser = (e) => {this.setState({user : e.target.value})}//更新单选框handleSex = (e) => {this.setState({sex : e.target.value})}//更新下拉菜单handleSelect = (e) => {this.setState({city : e.target.value})}//更新多选框handleLike = (i) => {const like = this.state.like;like[i].checked = !like[i].checkedthis.setState({like})}//处理文本域handleText = (e) => {this.setState({textArea : e.target.value})}render(){return (<div><h1>form</h1><br/><form onSubmit={this.handleSubmit}>用户名:<input type="text" value={this.state.user} onChange={this.handleUser}/><br/><br/>性别: <input type="radio" value={"0"} checked={this.state.sex === "0"} onChange={this.handleSex} /> 男<input type="radio" value={"1"} checked={this.state.sex === "1"} onChange={this.handleSex} /> 女<br/><br/> 城市:{this.state.cityList.length>0 && (<select value={this.state.city} onChange={this.handleSelect}>{this.state.cityList.length>0 && this.state.cityList.map((item, index) => {return(<option key={index}>{item}</option>)})}</select>)}<br/>爱好:{this.state.like.length>0 && this.state.like.map((item, index) => {return (<div key={index}><input type={"checkbox"}checked={item.checked}onChange={this.handleLike.bind(this, index)}/>{item.title}</div>)})}<br/><textarea value={this.state.textArea} onChange={this.handleText} cols={"30"} ></textarea><br/><br/><input type="submit" value={"提交"}/> </form> </div>)}
}
ReactDOM.render(<App></App>,document.getElementById("app")
)
复制代码
效果图,将传递给后台的数据打印出来:
转载于:https://juejin.im/post/5c21ed56f265da61620d6c68
react学习笔记(9)表单控件相关推荐
- Angular学习笔记(五) - 自定义表单控件
本文简单介绍封装使用ngModel实现自定义表单控件的过程. NgModel 相关 NgModel NgModel用于从作用域创建一个FormControl实例,并将它绑定到一个表单控件元素. ngM ...
- html学习笔记之一:表单控件
一.表单元素<form></form> 主要属性 1)action : 属性值是URL,规定当提交表单时应该思想何处提交数据,为空时表示在当前页面操作: 2)method :表 ...
- autojs遍历当前页面所有控件_HTML5表单和表单控件的使用
哈喽大家好,我是作者"未来",本期分享的内容是Web前端系列课程,本系列总共29个阶段,坚持学习3个月蜕变为Web前端高手哦! 志同道合的小伙伴跟我一起学习交流哦! 第一阶段 HT ...
- 我教女朋友学编程Html系列(6)—Html常用表单控件
做过网页的人都知道,html表单控件十分重要.基本上我们注册会员.登录用户,都需要填写用户名.密码,那些框框都是表单控件. 本来今天就想写一些常用的html表单控件,于是开始搜资料,找到了一个网页,作 ...
- ExtJs简单form表单控件
ExtJs常用表单控件 2011-05-31 18:14 我们还是从最简单的代码实例开始吧: <!--html代码--> <body> <div id="for ...
- 阿ken的HTML、CSS的学习笔记_表单的应用(笔记七)
欢迎光临 你好 我是阿ken 文章目录 7.1_认识表单 7.1.1_表单的构成 7.1.2_创建表单 ( < form> 标记 ) 7.2_表单属性 1. action 属性 2. me ...
- day01【HTML基础】HTML表单【重点】、表单控件、水平线标签、段落和换行标签、超链接标签、图像标签、列表标签、div和span标签、 转义(实体)字符、 基本表格、合并表格
HTML 一 HTML概述 超文本标记语言(Hyper Text Markup Language) 作用:搭建基础网页 超文本:具有普通文本的特性,同时还可以加入图片.视频.超链接等等. 标记:即标签 ...
- HTML基本语法之表单标签:表单的组成 ,表单域,表单控件元素(表单元素) ,input表单元素, label标签, 表单控件(表单元素), select表单元素, textarea表单元素
文章目录 表单标签 表单的组成 表单域 常用属性: 表单控件元素(表单元素) input表单元素 label标签 表单控件(表单元素) select表单元素 textarea表单元素 表单元素几个总结 ...
- form表单控件及控件属性
今天又学习了前端的form控件,这是我第二遍学习,确实发现不少新东西,把自己觉得常用的记下来 表单控件: **form:最主要的一个标签,但是这个元素不会生成可是化部分**属性:action:表单提交 ...
最新文章
- java 打包的两种方式
- ElasticSearch重启策略
- CodeForces - 1426F Number of Subsequences(dp)
- 微软中山大学开源超强的视觉位置编码,涨点显著
- Python all函数 - Python零基础入门教程
- Kafka和的安装与配置
- node -v 突然显示 killed 9 处理历程
- HCIP-Cloud Service Solutions Architect
- ERP ERP原理与应用试题(附答案)
- 爬虫三:用xpath爬取链家网二手房信息
- 字符串要求字母、数字、特殊字符,至少有两项。正则表达式不好写,可以用这个方法实现。
- 感谢上天,我被失联2年后,终于活着从东南亚菠菜公司的技术“魔窟”逃出来了......
- python黑科技:Python大佬用20行代码带你打造一个微信聊天机器人,真神了~
- socket接收消息 字符串长度
- 清华北大2018届毕业生去向统计
- 移动鼠标(动态)改变svg图标的颜色
- 使用git拉取github上的项目
- 初识 love2d. Hello World lua 调试 iOS 环境运行
- Java代码实现单元测试
- 干货!使用静态模型分类动态点云序列
热门文章
- CSS 框模型( Box module )
- Android 仿QQ消息界面
- pku 1321 棋盘问题 DFS
- 一个简单的GridView分页通用程序
- [BUAA OO]第三次博客作业
- 【转】火星坐标、百度坐标、WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版...
- SSM框架下分页的实现(封装page.java和List?)
- java中的char类型所占空间
- 限制文本输入框只能输入0-9数字
- 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法