reactjs入门到实战(八)----表单组件的使用
表单组件支持几个受用户交互影响的属性:
value,用于<input>、<textarea>组件。checked,用于类型为checkbox或者radio的<input>组件。selected,用于<option>组件。
在 HTML 中,<textarea> 的值通过子节点设置;在 React 中则应该使用 value 代替。
表单组件可以通过 onChange 回调函数来监听组件变化。当用户做出以下交互时,onChange 执行并通过浏览器做出响应:
<input>或<textarea>的value发生变化时。<input>的checked状态改变时。<option>的selected状态改变时。
和所有 DOM 事件一样,所有的 HTML 原生组件都支持 onChange 属性,而且可以用来监听冒泡的 change 事件
受限组件:你修改之后不起作用需要通过oncahnge来响应
input textarea select是一样的
var Hello = React.createClass({
render:function(){
return(
<input type="text" value="Hello" />
);
}
});
ReactDOM.render(
< Hello />,document.getElementById('example')
)
不起作用的:需要改成
<script type="text/babel">
var Hello = React.createClass({
getInitialState: function() {
return {value: 'Hello!'};
},
handleChange: function(event) {
this.setState({value: event.target.value});
},
render: function() {
return <input type="text" value={this.state.value} onChange={this.handleChange} />;
}
}); ReactDOM.render(
< Hello />,document.getElementById('example')
)
</script>
<script type="text/babel">
var Hello = React.createClass({
getInitialState: function() {
return {value: 'Hello!'};
},
handleChange: function(event) {
this.setState({value: event.target.value});
},
render: function() {
return <textarea type="text" value={this.state.value} onChange={this.handleChange} />;
}
}); ReactDOM.render(
< Hello />,document.getElementById('example')
)
</script>
<script type="text/babel">
var Hello = React.createClass({
getInitialState: function() {
return {value: 'bj'};
},
handleChange: function(event) {
this.setState({value: event.target.value});
},
render: function() {
return (<select id="city" name="city" value={this.state.value} onChange={this.handleChange} >
<option value='bj'>北京</option>
<option value='sh'>上海</option>
<option value='tj'>天津</option>
</select>
);
}
}); ReactDOM.render(
< Hello />,document.getElementById('example')
)
</script>
<script type="text/babel">
var Hello = React.createClass({
getInitialState: function() {
return {male: true};
},
handleGender: function(e) {
var male = !!(e.target.value == 'MALE');
this.setState({
male: male
});
},
render: function() {
return (
<input type='radio' name='gender' checked={this.state.male} onChange={this.handleGender} value='MALE' />
<input type='radio' name='gender' checked={!this.state.male} onChange={this.handleGender} value='FEMALE' />
);
}
}); ReactDOM.render(
< Hello />,document.getElementById('example')
)
</script>
不受限组件:渲染出来的元素直接反应用户输入
reactjs入门到实战(八)----表单组件的使用的更多相关文章
- ReactJS实用技巧(2):从新人大坑——表单组件来看State
不太清楚有多少初学React的同学和博主当时一样,在看完React的生命周期.数据流之后觉得已经上手了,甩开文档啪啪啪的开始敲了起来.结果...居然被一个input标签给教做人了. 故事是这样的:首先 ...
- 【form】 表单组件说明
form表单组件 1)将form组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/ ...
- 通过html()的方法获取文本内容, form表单组件显示的值与获取到的值不一致的问题
我在通过 html()获取对应节点的内容,发现一个问题,获取到的 form表单组件的内容值是初始加载的值,而不是经过用户修改后的值.例如页面加载时组件<input type="text ...
- 如何实现Ant design表单组件封装?
目标:自己实现一个antd表单组件 先看下Ant Design官网上给出的表单组件用法: import React, { Component } from 'react' import { Form, ...
- django基础之day09,创建一个forms表单组件进行表单校验,知识点:error_messages,label,required,invalid,局部钩子函数,全局钩子函数, forms_obj.cleaned_data,forms_obj.errors,locals(), {{ forms.label }}:{{ forms }},{{ forms.errors.0 }}
利用forms表单组件进行表单校验,完成用户名,密码,确认密码,邮箱功能的校验 该作业包含了下面的知识点: error_messages,label,required,invalid,局部钩子函数,全 ...
- 使用iview 的表单组件验证 Upload 组件
使用iview 的表单组件验证 Upload 组件 结果: 点击提交按钮, 没有填的form 项, 提示错误, 当填入数据后提示验证成功 代码: <template> <div id ...
- 文档驱动 —— 表单组件(五):基于Ant Design Vue 的表单控件的demo,再也不需要写代码了。
源码 https://github.com/naturefwvue/nf-vue3-ant 特点 只需要更改meta,既可以切换表单 可以统一修改样式,统一升级,以最小的代价,应对UI的升级.切换,应 ...
- 文档驱动 —— 表单组件(六):基于AntDV的Form表单的封装,目标还是不写代码
开源代码 https://github.com/naturefwvue/nf-vue3-ant 也不知道大家是怎么写代码的,这里全当抛砖引玉 为何封装? AntDV非常强大,效果也非常漂亮,功能强大, ...
- 为JQuery EasyUI 表单组件增加“焦点切换”功能
1.背景说明 在使用 JQuery EasyUI 各表单组件时,实际客户端页面元素是由 JQuery EasyUI 生成的,元素的焦点切换,虽然 Tab 键可以正常用,但顺序控制属性 tabinde ...
随机推荐
- .NET: WPF Binding对数据的校验和转换以及多路Binding
一.校验 一般需要对target上的值进行校验. xaml: <Window x:Class="WpfApplication1.MainWindow" xmlns=" ...
- php setcookie(name, value, expires, path, domain, secure) 参数详解
setcookie() 定义一个和其余的 HTTP 标头一起发送的 cookie.和其它标头一样,cookie 必须在脚本的任何其它输出之前发送(这是协议限制).这 需要将本函数的调用放到任何输出之前 ...
- java读properties的通用类,兼容linux和windows
package util; import java.io.IOException; import java.io.InputStream; import java.util.Properties; / ...
- Java实现数组按数值大小排序
package shb.java.test; /** * 比较数组中元素的大小,按从大到小顺序排列. * @Package:shb.java.test * @Description: * @autho ...
- JQuery书写Ajax的几种方式?
1 $.ajax({ type: "Post", //请求方式 ("POST" 或 "GET"), 默认为 "GET" ...
- PAT乙级 1019. 数字黑洞 (20)
1019. 数字黑洞 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位 ...
- thinphp讲解(三)——空操作、空控制器、跨控制器、命名空间
一.“空操作”本质意思:一个对象(控制器)调用本身不存在的操作方法 一般网站处于安全考虑不给用户提示任何错误信息 在tp里面控制器controller.class.php里有个_call()方法 所以 ...
- Openstack的vnc界面定制
先来看一下青云的vnc界面: 在来看一下openstack的自带的vnc界面: 区别于感受 本身原理是一样的,但是vnc上面的html布局不一样而已,但是青云的vnc界面给人的感受是:清晰提示,信息给 ...
- C#调用opencv
最经做一个项目,底层调用openCV编写的图像处理程序,用户界面采用C#编写. 于是学习了相关技术,总结如下: C#编写的是托管代码,编译生成微软中间语言,而普通C++代码则编译生成本地机器码,这两种 ...
- JAVA学习方法
我觉得要想学好的话,首先,你得会用,能玩的起来,然后才会慢慢激发你的兴趣,它为何这么用?就这样一步一步的去探索,不断地积累,总结.编程讲究的是思维,死记硬背是没有意义的,想学好编程就一个字:敲,俩字 ...