用jquery做表单验证

用jquery的json格式:

以下是register.jsp中的内容

 

var nameFLG = false;//因为与Action中的不同步所以要设置两个全局变量控制布尔值的设置.
var emailFLG = false;//因为passwrod不是异步的所以不用设全局变量.
$(function() {  //在这个函数中调用下面的四个验证函数,只有四个全为真的时候才允许提交.
  /** 用户名校验 */
  $('#name').blur(function() {
  validateName();
  });
 
  /** Email 校验*/
  $('#email').blur(function() {
   validateEmail();
  });
 
 
  /** PASSWORD 校验 */
  $('#password').blur(function() {
   validatePassword();
  });
  /** PASSWORD 校验 */
  $('#rePassword').blur(function() {
   validateRepassword();
  });
 
  $('#registerForm').submit(function() {//只有四个全为真时才允许提交.
  
   if(nameFLG && emailFLG  && validatePassword() && validateRepassword()) {
    return true;
   } else {
    return false;
   }
  });
});

function validatePassword() {
 var passwd_reg = /^(/w){4,20}/ ;//  ***/代表正则表达式的开始,表示4-20位的任意字符/w可以匹配任何数字字符和英文字母还有下划线,等于[A-Za-z0-9_]
 var t_password = $('#password').val();
 if (!passwd_reg.exec(t_password)) {
  $('#infoPass').removeClass('d_default');
  $('#infoPass').addClass('d_err');
  $('#infoPass').text('最少4个字符,使用英文字母、符号或数字。 ');  
  return false;
 } else {
  $('#infoPass').removeClass('d_default');
  $('#infoPass').removeClass('d_err');
  $('#infoPass').addClass('d_ok');
  $('#infoPass').text('密码已经输入。 ');
  return true;
 }


}
function validateRepassword() {
 if ($('#password').val() != $('#rePassword').val()) {
  $('#infoRePass').removeClass('d_default');
  $('#infoRePass').addClass('d_err');
  $('#infoRePass').text('两次输入的密码不一致。 ');
  return false;
 } else {
  $('#infoRePass').removeClass('d_default');
  $('#infoRePass').removeClass('d_err');
  $('#infoRePass').addClass('d_ok');
  $('#infoRePass').text('重复密码输入正确。');
  return true;
 }
 
}


/**
 * email的校验方法
 */
function validateEmail() {
 var t_email =  $.trim($('#email').val());//得到id为email的文本框的值.并且是去掉空格后的值.
    if (t_email == '') {
     $('#infoEmail').removeClass('d_default');//将id为d_email的那个块中的名字为d_default的样式去掉.
  $('#infoEmail').addClass('d_err'); //将id为d_email的那个块中的样式设为名字为d_err的样式
  $('#infoEmail').text('请输入您的Email。');//将id为d_email的那个块中的内容设为请输入您的Email
  emailFLG = false;
  return;
    }
   
    var email_reg = /^[_/.0-9a-zA-Z+-]+@([0-9a-zA-Z]+[0-9a-zA-Z-]*/.)+[a-zA-Z]{2,4}$/;//验证email的格式.
    if(!email_reg.exec(t_email)) {
     $('#infoEmail').removeClass('d_default');
  $('#infoEmail').addClass('d_err');
  $('#infoEmail').text('请输入正确的email。');
     emailFLG = false;
  return;
    }
   
    $.post('ajaxAction.do', {'method':'checkEmail', 'email': t_email}, function(data) {
     if (data.ishave == 0) {
      $('#infoEmail').removeClass('d_default');
   $('#infoEmail').removeClass('d_err');
   $('#infoEmail').addClass('d_ok');
   $('#infoEmail').text('该Email可以使用。');
   emailFLG = true;
   return;
     }
     if (data.ishave == 1) {
      $('#infoEmail').removeClass('d_default');
   $('#infoEmail').removeClass('d_ok');
   $('#infoEmail').addClass('d_err');
   $('#infoEmail').text('该Email已经有人使用了。');
   emailFLG = false;
   return;
     }
    }, 'json');
}
/**
 * name的校验方法
 */
function validateName() {
 var t_name =  $.trim($('#name').val());
    if (t_name == '') {
     $('#infoName').removeClass('d_default');
  $('#infoName').addClass('d_err');
  $('#infoName').text('请输入您的登录名。');
  nameFLG = false;
  return;
    }
    $.post('ajaxAction.do', {'method':'checkName', 'name': t_name}, function(data) {
     if (data.ishave == 0) {
      $('#infoName').removeClass('d_default');
   $('#infoName').removeClass('d_err');
   $('#infoName').addClass('d_ok');
   $('#infoName').text('该会员名可以注册。');
   nameFLG = true;
   return;
     }
     if (data.ishave == 1) {
      $('#infoName').removeClass('d_default');
   $('#infoName').removeClass('d_ok');
   $('#infoName').addClass('d_err');
   $('#infoName').text('该会员名已经被占用了。');
   nameFLG = false;
   return;
     }
    }, 'json');

}

以下是Action后台中的内容.以email为例,name 同这个
public ActionForward checkEmail(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
  UserDaoImpl daoImpl = new UserDaoImpl();
  UserForm userForm = daoImpl.getUserByEmail(request.getParameter("email"));
  PrintWriter printWriter = response.getWriter();
  if (userForm == null) {
   printWriter.write("{'ishave':'0'}");
  } else {
   printWriter.write("{'ishave':'1'}");
  }
  printWriter.flush();
  printWriter.close();
  return null;
 } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值