做注册的时候,由于每一个页面都有都要可以注册,可以把注册方法写到一个公用的方法里去,其他方法继承这个方法:

简单注册JS示例

<script type='text/javascript'>
var CONTROL = '__URL__';
</script>

JS示例

var validate = {
account : false,
username : false,
pwd : false,
pwded : false,
verify : false,
loginAccount : false,
loginPwd : false
}; var msg = '';
$(function () {
$( '#verify-img' ).click( function () {
$( this ).attr('src', CONTROL + 'verify/' + Math.random());
} ); var register = $( 'form[name=register]' ); register.submit( function () {
var isOK = validate.account && validate.username && validate.pwd && validate.pwded && verify; if ( isOK ) {
return true;
} $( 'input[name=account]', register ).trigger('blur');
$( 'input[name=username]', register ).trigger('blur');
$( 'input[name=pwd]', register ).trigger('blur');
$( 'input[name=pwded]', register ).trigger('blur');
$( 'input[name=verify]', register ).trigger('blur');
return false;
} ); //验证帐号
$( 'input[name=account]', register ).blur( function () {
var account = $( this ).val();
var span = $( this ).next(); if ( account == '' ) {
msg = '帐号不能为空';
span.html( msg ).addClass('error');
validate.account = false;
return;
} if ( !/^[a-zA-Z]\w{6,19}$/g.test(account) ) {
msg = '帐号以字母开头7-20位的字母,数字,下划线';
span.html( msg ).addClass('error');
validate.account = false;
return;
} $.post(CONTROL + 'checkAccount', {account : account}, function (status) {
if (status) {
msg = '';
span.html( msg ).removeClass('error');
validate.account = true;
} else {
msg = '帐号已存在';
span.html( msg ).addClass('error');
validate.account = false;
}
}, 'json');
} ); //验证用户名
$( 'input[name=username]', register ).blur( function () {
var username = $( this ).val();
var span = $( this ).next(); if ( username == '' ) {
msg = '用户名不能为空';
span.html( msg ).addClass('error');
validate.username = false;
return;
} if ( !/^[\u4e00-\u9fa5|\w]{2,14}$/g.test(username) ) {
msg = '必须是2-14个字符:字母,数字,下划线或中文';
span.html( msg ).addClass('error');
validate.username = false;
return;
} $.post(CONTROL + 'checkUsername', {username : username}, function (status) {
if (status) {
msg = '';
span.html( msg ).removeClass('error');
validate.username = true;
} else {
msg = '用户名已存在';
span.html( msg ).addClass('error');
validate.username = false;
}
}, 'json');
} ); //验证密码
$( 'input[name=pwd]', register ).blur( function () {
var pwd = $( this ).val();
var span = $( this ).next(); if ( pwd == '' ) {
msg = '密码不能为空';
span.html( msg ).addClass('error');
validate.pwd = false;
return;
} if ( !/^\w{6,20}$/g.test(pwd) ) {
msg = '密码必须由6-20个字母,数字,下划线组成';
span.html( msg ).addClass('error');
validate.pwd = false;
return;
} msg = '';
validate.pwd = true;
span.html( msg ).removeClass('error');
} ); //确认密码
$( 'input[name=pwded]', register ).blur( function () {
var pwded = $( this ).val();
var span = $( this ).next(); if ( pwded == '' ) {
msg = '请确认密码';
span.html( msg ).addClass('error');
validate.pwded = false;
return;
} if ( pwded != $( 'input[name=pwd]', register ).val() ) {
msg = '两次密码不一致';
span.html( msg ).addClass('error');
validate.pwded = false;
return;
} msg = '';
span.html( msg ).removeClass('error');
validate.pwded = true;
} ); //验证码
$( 'input[name=verify]', register ).blur( function () {
var verify = $( this ).val();
var span = $( this ).next().next(); if ( verify == '' ) {
msg = '请输入验证码';
span.html( msg ).addClass('error');
validate.verify = false;
return;
} $.post(CONTROL + 'checkVerify', {verify : verify}, function (status) {
if (status) {
msg = '';
span.html( msg ).removeClass('error');
validate.verify = true;
} else {
msg = '验证码错误';
span.html( msg ).addClass('error');
validate.verify = false;
}
}, 'json'); } ); var login = $( 'form[name=login]' ); login.submit( function () {
if (validate.loginAccount && validate.loginPwd) {
return true;
} $( 'input[name=account]', login ).trigger('blur');
$( 'input[name=pwd]', login ).trigger('blur');
return false; } ); $( 'input[name=account]', login ).blur( function () {
var account = $( this ).val();
var span = $( '#login-msg' ); if (account == '') {
span.html( '请填入帐号' );
validate.loginAccount = false;
return;
} } ); $( 'input[name=pwd]', login ).blur( function () {
var account = $( 'input[name=account]', login ).val();
var pwd = $( this ).val();
var span = $( '#login-msg' ); if (pwd == '') {
span.html( '请填写密码' );
validate.loginPwd = false;
return;
} if (account == '') {
span.html( '请填入帐号' );
validate.loginAccount = false;
return;
} var data = {
account : account,
password : pwd
}; $.post(CONTROL + 'checkLogin', data, function (status) {
if (status) {
span.html( '' );
validate.loginAccount = true;
validate.loginPwd = true;
} else {
span.html( '帐号或密码不正确' );
validate.loginAccount = false;
validate.loginPwd = false;
}
}, 'json'); } ); });

异步验证账号/用户名/密码:

//异步验证帐号
Public function checkAccount () {
if (!$this->isAjax()) halt('页面不存在');
$account = $this->_post('account');
$where = array('account' => $account);
if (M('user')->where($where)->getField('id')) {
echo 0;
} else {
echo 1;
}
} //异步验证用户名
Public function checkUsername () {
if (!$this->isAjax()) halt('页面不存在');
$username = $this->_post('username');
$where = array('username' => $username);
if (M('user')->where($where)->getField('id')) {
echo 0;
} else {
echo 1;
}
} //异步验证验证码
Public function checkVerify () {
if (!$this->isAjax()) halt('页面不存在'); if ($_SESSION['verify'] == $this->_post('verify', 'md5')) {
echo 1;
} else {
echo 0;
}
} //验证码
Public function verify () {
import('ORG.Util.Image');
Image::buildImageVerify();
}

问答项目---用户注册的那些事儿(JS验证)的更多相关文章

  1. 问答项目---用户注册的那些事儿(PHP验证)

    JS 验证之后,还需要通过PHP验证: 提交过来的名称不一样,可以用字段映射: 在自动验证的时候,如果这个字段被映射,那么自动验证的时候,自动验证的就是 映射过后的字段: 控制器示例: //注册表单处 ...

  2. 【转】去除eclipse的JS验证

    第一步:去除eclipse的JS验证:将windows->preference->Java Script->Validator->Errors/Warnings->Ena ...

  3. 九月二十八JS验证

    js表单验证 js可用发来在数据被送往服务器前对HTML表单中的这些输入数据进行验证 被js验证的这些典型的表单数据有: >用户是否已填写表单中的必填项目: >用户输入的邮件地址是否是合法 ...

  4. SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码

    在SpringMVC学习系列(6) 之 数据验证中我们已经学习了如何结合Hibernate-validator进行后台的数据合法性验证,但是通常来说后台验证只是第二道保险,为了更好的用户体验会现在前端 ...

  5. js验证真实姓名与身份证号,手机号

    最近的项目中用的需要调用实名认证的接口,实名认证接口价格相比短信而言高了不是几分钱,所以说调用实名认证的条件就要严格把关,因此用到js验证真实姓名与js验证身份证号. 进入正题 1.js验证真实姓名 ...

  6. node的passport.js验证

    项目使用的是passport.js(http://passportjs.org/docs),所以对passport这个中间件研究了一番,在本项目中passport同express-session配合使 ...

  7. 去掉eclipse的xml和js验证

    一.XML Properties > Validation you have two options: 1- Configure Workspace Settings (disable the ...

  8. Eclipse编写ExtJS卡死问题 eclise js验证取消

    1. Eclipse编写ExtJS卡死问题 eclise js验证取消 近期项目用到了extjs,发现项目编译的时候特别的卡,浪费很多时间而且保存的时候还要编译,因此打算看下如何取消验证extjs.最 ...

  9. 自制“低奢内”CSS3注册表单,包含JS验证哦。请别嫌弃,好吗?。

    要求 必备知识 基本了解CSS语法,初步了解CSS3语法知识.和JS/JQuery基本语法. 开发环境 Adobe Dreamweaver CS6 演示地址 演示地址 预览截图(抬抬你的鼠标就可以看到 ...

随机推荐

  1. 判断IE浏览器的最简洁方法

    <script type='text/javascript'> var ie = !-[1,]; alert(ie);</script>

  2. JQuery下拉控件select的操作汇总

    JQuery获取和设置Select选项方法汇总如下: 获取select 先看看下面代码:   $("#select_id").change(function(){//code... ...

  3. java笔记知识点总结

    1.switch case default 语句 : switch case 语句是一个条件选择语句,找到相同的case值做为入口,执行后面的程序:若所有的case都不满足,则找default入口:若 ...

  4. android LayoutInflater 笔记

    LayoutInflater类用于查找布局文件并实例化.用于动态将布局加入界面中. 参考链接 http://blog.csdn.net/guolin_blog/article/details/1292 ...

  5. lambda小结

    新公司用Java8,所以搜了下文档,发现其主要是两个概念:Lambda表达式和函数式接口. Lambda是一段可执行的代码(类似匿名函数). Lambda的设计者们为了让Java现有的体系与Lambd ...

  6. vector、map删除当前记录

    map<string, string> sMap; map<string, string>::iterator iter; for(iter = sMap.begin();it ...

  7. LabVIEW中数组的自动索引

    我们在LabVIEW里面使用While或者是For循环结构的时候,就会发现每一个循环中在它们的循环结构的边界都可以自动完成一个数组元素的索引或累积.LabVIEW中循环结构的这种能力就叫做自动索引(A ...

  8. 基于bootstrap的select(可多选)

    如图:

  9. Qt 定时器Timer使用

    From: http://dragoon666.blog.163.com/blog/static/107009194201092602326598/ 1.新建Gui工程,在主界面上添加一个标签labe ...

  10. YII2中的Html助手和Request组件

    Html助手 1 .在@app\views\test的index.php中: <?php //引入命名空间 use yii\helpers\Html; ?> <?php //[一]表 ...