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")
)
复制代码

初始效果:

当在输入框中输入数据时,在旁边会出现相同文字:

  1. 非受控(非约束性)表单控件: 用户输入的值获取不到
  2. 受控(约束性)表单控件: 让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)表单控件相关推荐

  1. Angular学习笔记(五) - 自定义表单控件

    本文简单介绍封装使用ngModel实现自定义表单控件的过程. NgModel 相关 NgModel NgModel用于从作用域创建一个FormControl实例,并将它绑定到一个表单控件元素. ngM ...

  2. html学习笔记之一:表单控件

    一.表单元素<form></form> 主要属性 1)action : 属性值是URL,规定当提交表单时应该思想何处提交数据,为空时表示在当前页面操作: 2)method :表 ...

  3. autojs遍历当前页面所有控件_HTML5表单和表单控件的使用

    哈喽大家好,我是作者"未来",本期分享的内容是Web前端系列课程,本系列总共29个阶段,坚持学习3个月蜕变为Web前端高手哦! 志同道合的小伙伴跟我一起学习交流哦! 第一阶段 HT ...

  4. 我教女朋友学编程Html系列(6)—Html常用表单控件

    做过网页的人都知道,html表单控件十分重要.基本上我们注册会员.登录用户,都需要填写用户名.密码,那些框框都是表单控件. 本来今天就想写一些常用的html表单控件,于是开始搜资料,找到了一个网页,作 ...

  5. ExtJs简单form表单控件

    ExtJs常用表单控件 2011-05-31 18:14 我们还是从最简单的代码实例开始吧: <!--html代码--> <body> <div id="for ...

  6. 阿ken的HTML、CSS的学习笔记_表单的应用(笔记七)

    欢迎光临 你好 我是阿ken 文章目录 7.1_认识表单 7.1.1_表单的构成 7.1.2_创建表单 ( < form> 标记 ) 7.2_表单属性 1. action 属性 2. me ...

  7. day01【HTML基础】HTML表单【重点】、表单控件、水平线标签、段落和换行标签、超链接标签、图像标签、列表标签、div和span标签、 转义(实体)字符、 基本表格、合并表格

    HTML 一 HTML概述 超文本标记语言(Hyper Text Markup Language) 作用:搭建基础网页 超文本:具有普通文本的特性,同时还可以加入图片.视频.超链接等等. 标记:即标签 ...

  8. HTML基本语法之表单标签:表单的组成 ,表单域,表单控件元素(表单元素) ,input表单元素, label标签, 表单控件(表单元素), select表单元素, textarea表单元素

    文章目录 表单标签 表单的组成 表单域 常用属性: 表单控件元素(表单元素) input表单元素 label标签 表单控件(表单元素) select表单元素 textarea表单元素 表单元素几个总结 ...

  9. form表单控件及控件属性

    今天又学习了前端的form控件,这是我第二遍学习,确实发现不少新东西,把自己觉得常用的记下来 表单控件: **form:最主要的一个标签,但是这个元素不会生成可是化部分**属性:action:表单提交 ...

最新文章

  1. java 打包的两种方式
  2. ElasticSearch重启策略
  3. CodeForces - 1426F Number of Subsequences(dp)
  4. 微软中山大学开源超强的视觉位置编码,涨点显著
  5. Python all函数 - Python零基础入门教程
  6. Kafka和的安装与配置
  7. node -v 突然显示 killed 9 处理历程
  8. HCIP-Cloud Service Solutions Architect
  9. ERP ERP原理与应用试题(附答案)
  10. 爬虫三:用xpath爬取链家网二手房信息
  11. 字符串要求字母、数字、特殊字符,至少有两项。正则表达式不好写,可以用这个方法实现。
  12. 感谢上天,我被失联2年后,终于活着从东南亚菠菜公司的技术“魔窟”逃出来了......
  13. python黑科技:Python大佬用20行代码带你打造一个微信聊天机器人,真神了~
  14. socket接收消息 字符串长度
  15. 清华北大2018届毕业生去向统计
  16. 移动鼠标(动态)改变svg图标的颜色
  17. 使用git拉取github上的项目
  18. 初识 love2d. Hello World lua 调试 iOS 环境运行
  19. Java代码实现单元测试
  20. 干货!使用静态模型分类动态点云序列

热门文章

  1. CSS 框模型( Box module )
  2. Android 仿QQ消息界面
  3. pku 1321 棋盘问题 DFS
  4. 一个简单的GridView分页通用程序
  5. [BUAA OO]第三次博客作业
  6. 【转】火星坐标、百度坐标、WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版...
  7. SSM框架下分页的实现(封装page.java和List?)
  8. java中的char类型所占空间
  9. 限制文本输入框只能输入0-9数字
  10. 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法