import React, { Component } from "react"
import { log } from "util";
export default class Form extends Component {constructor() {super()this.state = {user: {//要提交给后端的数据  起名字后端叫什么我们也叫什么username: '',password: '',sex: '',profession: "",hobby: [],des: '',isAgree: false},jobs: [//职业的类型{label: '杏仁',value: 'xingr'},{label: '杏子',value: 'xingz'},{label: '杏花',value: 'xingh'},{label: '杏壳',value: 'xingk'}],hobby: [{title: '喝酒',value: 'drink',checked: false},{title: '抽烟',value: 'smoking',checked: false}, {title: '烫头',value: 'tt',checked: false}, {title: '完',value: 'play',checked: false}]}}//用户名和密码的事件changeV (e, v) {this.setState({user: {...this.state.user,[v]: e.target.value}}, () => {console.log(this.state.user);})}// 性别changeR (e, v) {this.setState({user: {...this.state.user,[v]: e.target.value}}, () => {console.log(this.state.user);console.log(v, e.target.value);})}// 职业changeJ (e, v) {console.log('11');this.setState({user: {...this.state.user,[v]: e.target.value}}, () => {console.log(this.state.user);console.log(v, e.target.value);})}// 爱好changeH (e, attr, index) {//取出来(解构赋值)const { hobby } = this.state// 修改hobby[index][attr] = e.target.checked// 筛选 并且取出value值var h = hobby.filter((item) => { return item.checked }).map((item) => { return item.value })this.setState({user: {...this.state.user,hobby: h}}, () => {console.log(this.state.user);})}changeT(e,v){this.setState({user:{...this.state.user,[v]:e.target.value}})}changeG(e,v){this.setState({user:{...this.state.user,[v]:e.target.checked}},()=>{console.log(this.state.user);})}submit(){console.log(this.state.user);}render () {return (<div><h1>表单元素的获取</h1><p>账号: <input type="text" onChange={(e) => this.changeV(e, 'username')} /></p><p>密码: <input type="text" onChange={(e) => { this.changeV(e, 'password') }} /></p><p>性别: <input type="radio" onChange={(e) => { this.changeR(e, 'sex') }} name='sex' value='0' />男<input type="radio" onChange={(e) => { this.changeR(e, 'sex') }} name='sex' value='1' />女</p><p>职业:<select onChange={(e) => { this.changeJ(e, 'profession') }}><option value="" disabled>---请选择---</option>{/* <option value="xingren">杏仁</option><option value="xingke">杏壳</option><option value="xinghua">杏花</option> */}{this.state.jobs.map(item => {return <option key={item.value} value={item.value}>{item.label}</option>})}</select></p><p>爱好:{/* <span><input type="checkbox" />喝酒</span><input type="checkbox" />抽烟<input type="checkbox" />烫头<input type="checkbox" />吃饭 */}{this.state.hobby.map((item, index) => {return (<span key={index}><input onChange={(e) => { this.changeH(e, 'checked', index) }} value={item.value} type="checkbox" />{item.title}</span>)})}</p><p>备注:<textarea cols="30" rows="10" onChange={(e)=>{this.changeT(e,'des')}}></textarea></p><p><input type="checkbox" onChange={(e)=>{this.changeG(e,"isAgree")}}/>我同意</p><p><button onClick={this.submit.bind(this)}>提交</button></p></div>)}
}

10 react表单操作(未封装版) 喜欢点赞加关注!谢谢相关推荐

  1. AngularJS表单操作几个例子(表单提交,表单编辑默认值)

    听同事讲AngularJS比jquery还要强大一些于时就开始了AngularJS学习工作,但在学习AngularJS中发现对于表单提交与表单默认值都不会搞,下面来看看几个关于AngularJS Fo ...

  2. SharePoint:扩展DVWP - 第34部分:使用图标形式的表单操作链接

    上一次,我们对我们的DVWP的外观进行了最后的加工,实现了下图中 1-5 的部分.这一次,我们将继续完成剩下的6 和 7 ,来为其添加一个图标. 在本系列中间的部分,Greg Schaefer提了一个 ...

  3. Selenium自动化测试框架基础学习(元素表单操作)(Selenium操作)

    目录 一.Selenium自动化测试框架 1.1什么是框架? 1.2为什么使用框架? 1.3Selenium-webdriver工作原理 1.4selenium环境搭建(详情查阅讲义) 1.5什么是S ...

  4. 下面关于表单的叙述错误的是_下面是关于表单数据环境的叙述,其中错误的是A.可以在数据环境中加入与表单操作有关的表B.数据环...

    (文)已知等比数列{xn}的公比是不为1的正数,数列{yn}满足yn?logxna=2(a>0,a≠1),当y4=15,y7=9时,数列{yn}的前 在等差数列{an}中,若an<0,a2 ...

  5. JQuery入门常用的一些方法、表单操作、正则验证

    获取一组radio被选中项的值 var item = $('input[@name=items][@checked]').val(); 获取select被选中项的文本 var item = $(&qu ...

  6. Vue常用特性——表单操作、表单域修饰符(number:转化为数值 ;trim:去掉开始和结尾的空格 ; lazy : 将input事件切换为change事件)||自定义指令|| 局部指令

    Vue常用特性 常用特性概览 <!DOCTYPE html> <html lang="en"> <head><meta charset=& ...

  7. 开源免费OA教程:移动端工作表单操作条的使用方法

    O2OA移动端工作页面目前支持在App.钉钉.企业微信.微信公众号.小程序.UniApp.华为Welink等等各种移动端解决方案中使用. 操作条 先说下操作条是个啥. 咱们O2OA的流程表单设计器是一 ...

  8. Flask 表单操作库 flask_WTF flask_WTForms

    一.安装 flask_WTF 0.14.X flask_WTF 英文文档          flask_WTF 中文文档0.12        Flask表单验证组件WTForms Flask-WTF ...

  9. 简单的form表单操作的几种写法

    为什么80%的码农都做不了架构师?>>>    function save(){var name = $('#name').val();var email = $('#email') ...

最新文章

  1. @OneToMany
  2. java 过滤器 加参数,自定义授权过滤器属性参数
  3. 聊聊base62与tinyURL
  4. kali系统网络设置
  5. 安装中文VS2008 SP1之后 智能提示是英文的解决办法
  6. java中VO、PO、DTO 、DO、POJO、BO、TO
  7. c语言中const对于define优点,为什么大多数C开发人员使用define而不是const?
  8. 文本检测大满贯!自适应文本区域表示改进形状任意的文本检测
  9. c语言学习-使用指针对三个变量互相赋值
  10. 吴昊品游戏核心算法(新年特别篇)——另类取石子游戏(斐波那契博弈)
  11. Java 经典笔试题
  12. iphone怎么换手机铃声?原来方法这么简单,只需要一招 iRingg
  13. 【大数据部落】R语言多元Copula GARCH 模型时间序列预测
  14. lunix入侵别人电脑_记录一次Linux的实战入侵过程
  15. UNITY游戏开发源码
  16. Redis实战(通俗易懂,超详细攻略) V2.0版本
  17. 服务器显卡驱动重装系统,windows7旗舰版系统重装显卡驱动的方法
  18. 【《Real-Time Rendering 3rd》 提炼总结】(八) 第九章 · 全局光照:光线追踪、路径追踪与GI技术进化编年史
  19. 结合可变形注意力的视觉Transformer
  20. 微信在教育行业的营销

热门文章

  1. jasper翻译_Jasper[杰斯帕,贾斯珀]英文名的中文翻译意思、发音、来源及流行趋势-千代英文名...
  2. 导师制——听初二家长会
  3. 计算机网络拓扑结构的优缺点,计算机网络的拓扑结构有哪些它们各有什么优缺点...
  4. ORA-08002: 序列 SEQ_XXX.CURRVAL 尚未在此会话中定义
  5. [FC][移动速度修改教程]
  6. ARP攻击的发现、攻击原理、攻击方式、防护
  7. mikumikudance导入角色后,左边栏的骨骼帧怎么没有了,但是角色本身的骨骼是可以操作的,该怎么办...
  8. 【超级有趣的“兔子吃月饼”游戏---使用html,js,css等实现(附源代码)】
  9. tensorboard网页打不开
  10. Android 如何使系统快速重启