react.js 表单验证-登录框
import React,{ Component } from 'react';
import style from 'cms.css';
/**
* 路由路径 登录成功后页面跳转到index
*/
import { index } from 'config';
export default class Login extends Component {
constructor(props){
super(props);
this.state = {
userName: "",
userPassword: "",
isRemember: false,
unameHelp: "",
upwdHelp: ""
}
}
//监听input中的数据,保存到state中
changeUsername(e){
let uname = e.target.value;
this.setState({
userName: uname
});
console.log(this.state.userName);
}
changePassword(e){
let upwd = e.target.value;
this.setState({
userPassword: upwd
})
}
//是否记住密码
handleCheckbox(e){
let isChecked = e.target.checked;
if(isChecked){
this.setState({
isRemember: true
})
}else{
this.setState({
isRemember: false
})
}
}
//点击登录按钮,触发后台接口提供的验证,对数据的处理等方法
handleClick(){
if(this.state.userName === ""||this.state.userName === null){
this.setState({
unameHelp: "* 用户名不能为空"
})
}else if(this.state.userPassword === ""||this.state.userPassword === null){
this.setState({
unameHelp: "",
upwdHelp: "* 密码不能为空"
})
}else{
this.setState({ //清除help-block提示文字
unameHelp: "",
upwdHelp: ""
});
if(this.state.isRemember === true){ //是否记住密码,若记住,则保存至localstorage,反之,清除
// let loginData = {this.state.userName,this.state.userPassword};
let loginData = {};
loginData.userName = this.state.userName;
loginData.userPassword = this.state.userPassword;
Data.localSetItem("mm_loginStatus",loginData);
}else{
Data.localRemoveItem("jiaj-loginStatus");
}
this.props.login(this.state.userName,this.state.userPassword);
console.log(this.state);
}
}
render(){
return (
<div className="login-box">
<div className="login-title">登 录</div>
<form action="" className="form-horizontal">
<div className="form-group input-text">
<label htmlFor="uname">账号</label>
<input type="text" className="form-control" name="username" id="uname" ref="uname" placeholder="手机号/用户名"
onChange={this.changeUsername.bind(this)}/>
<span className="help-block">{this.state.unameHelp}</span>
</div>
<div className="form-group input-text">
<label htmlFor="upwd">密码</label>
<input type="password" className="form-control" name="password" id="upwd" ref="upwd" placeholder="密码"
onChange={this.changePassword.bind(this)}/>
<span className="help-block">{this.state.upwdHelp}</span>
</div>
<div className="form-group">
<label htmlFor="chk" className="check">
<input type="checkbox" id="chk" checked={this.state.isRemember} onClick={this.handleCheckbox.bind(this)} />
<span>记住密码</span>
</label>
</div>
<div className="form-group">
<button type="button" onClick={this.handleClick.bind(this,this.state.userName,this.state.userPassword)} className="btn btn-primary login-btn">登录</button>
</div>
</form>
</div>
)
}
}
/**************登录(WXP)****************/
.login-box{
width: 60%;
background: #e0e8e0;
margin: 100px auto;
padding: 50px 70px;
box-shadow: 5px 5px #ddd;
border-radius: 5px;
}
.login-title{
font-size: 30px;
text-align: center;
margin-bottom: 20px;
font-weight: 600;
}
.input-text>label{
display: inline-block;
width: 15%;
}
.input-text>input{
display: inline-block;
width: 80%;
}
.check{
margin-left: 15%;
width: 40%
}
.check>span{
margin-left: 3%;
}
.login-btn{
margin-left: 15%;
width: 80%;
font-size: 16px;
}
.help-block{
color: #e4393c;
height: 20px;
font-size: 12px;
margin-left: 15%;
}
react.js 表单验证-登录框的更多相关文章
- angular js 表单验证
<!doctype html> <html ng-app="myapp"> <head> <meta charset="UTF- ...
- Js表单验证控件-02 Ajax验证
在<Js表单验证控件(使用方便,无需编码)-01使用说明>中,写了Verify.js验证控件的基本用法,基本可以满足大多数验证需求,如果涉及服务端的验证,则可以通过Ajax. Ajax验证 ...
- JS表单验证-12个常用的JS表单验证
JS表单验证-12个常用的JS表单验证 最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 <p>1. 长度 ...
- js 表单验证控制代码大全
js表单验证控制代码大全 关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:目录:1:js 字符串长度限制.判断字符长度 .js限制输入.限制不能输入.textarea 长 ...
- jquery.validation.js 表单验证
jquery.validation.js 表单验证 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuer ...
- Jquery.validate.js表单验证插件的使用
作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...
- JS表单验证类HTML代码实例
以前用的比较多的一个JS表单验证类,对于个人来说已经够用了,有兴趣的可以在此基础上扩展成ajax版本.本表单验证类囊括了密码验证.英文4~10个 字符验证. 中文非空验证.大于10小于100的数字.浮 ...
- jQuery.validate.js表单验证插件
jQuery.validate.js表单验证插件的使用 效果: 代码: <!DOCTYPE html> <html lang="en"> <head& ...
- js表单验证工具包
常用的js表单验证方法大全 /* 非空校验 : isNull() 是否是数字: isNumber(field) trim函数: trim() lTrim() rTrim() 校验字符串是否为空: ch ...
随机推荐
- HDU 2516 取石子游戏
Problem Description 1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍.取完者胜.先取者负输出"Secon ...
- 【转】最长回文子串的O(n)的Manacher算法
Manacher算法 首先:大家都知道什么叫回文串吧,这个算法要解决的就是一个字符串中最长的回文子串有多长.这个算法可以在O(n)的时间复杂度内既线性时间复杂度的情况下,求出以每个字符为中心的最长回文 ...
- 使用C#向ACCESS中插入数据
使用C#向ACCESS中插入数据 1.创建并打开一个OleDbConnection对象 string strConn = " Provider = Microsoft.Jet.OLEDB ...
- Qt 静态编译后的exe太大, 可以这样压缩.
1. 下载PECompact 下载地址:http://download.csdn.net/download/sniper_bing/7669247 , 不行大家就去baidu搜索下载就可以了这个是绿 ...
- jmeter 函数助手里的P,property的使用
1.函数助手里的 p及property的使用 ${__P(init,2)} , ${__property(init,start,200)} 可以自行定义变量名称,及变量的默认值 P 变量名为init, ...
- idea常用快捷键
十大Intellij IDEA快捷键 2015-01-16 21:31 122307人阅读 评论(38) 收藏 举报 本文章已收录于: .embody { padding: 10px 10px 10p ...
- memcache 的内存管理介绍和 php实现memcache一致性哈希分布式算法
1 网络IO模型 安装memcached需要先安装libevent Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描 ...
- 实现路由的RouterMiddleware中间件
实现路由的RouterMiddleware中间件 虽然ASP.NET Core应用的路由是通过RouterMiddleware这个中间件来完成的,但是具体的路由解析功能都落在指定的Router对象上, ...
- codevs3145 汉诺塔问题
难度等级:白银 3145 汉诺塔问题 题目描述 Description 汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题.在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一 ...
- oracle:db-link使用
二个oracle instance,如果需要在一个instance上,直接查询另一个instance上的数据,就要用到db-link 创建: create public database link 链 ...