表单校验是几乎所有WEB应用都会用到的,这里提供一种用原生JavaScript的简单前台校验

<form id="registerForm" action=""  method="post"onsubmit="return checkForm();">
  用户名:  <input type="text" id="username" name="username" maxlength="20" onblur="checkUsername()"/><span id="span1"></span>
  密码:   <input type="password" id="password" name="password" maxlength="20"/>
  确认密码: <input id="repassword" type="password" name="repassword" maxlength="20"/>
        <input type="submit" value="注册">
</form>
function checkForm(){
  // 校验用户名:
  // 获得用户名文本框的值:
  var username = document.getElementById("username").value;
  if(username == null || username == ''){
    alert("用户名不能为空!");
    return false;
  }
  // 校验密码:
  // 获得密码框的值:
  var password = document.getElementById("password").value;
  if(password == null || password == ''){
    alert("密码不能为空!");
    return false;
  }
  // 校验确认密码:
  var repassword = document.getElementById("repassword").value;
  if(repassword != password){
    alert("两次密码输入不一致!");
    return false;
  }
}
function checkUsername(){
  // 获得文件框值:
  var username = document.getElementById("username").value;
  // 1.创建异步交互对象
  var xhr = createXmlHttp();
  // 2.设置监听
  xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
      if(xhr.status == 200){
        document.getElementById("span1").innerHTML = xhr.responseText;
      }
    }
  }
  // 3.打开连接
  xhr.open("GET","${pageContext.request.contextPath}/user_findByName.action?time="+new Date().getTime()+"&username="+username,true);
  // 4.发送
  xhr.send(null);
}
function createXmlHttp(){
  var xmlHttp;
  try{ // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
  }catch (e){
    try{// Internet Explorer
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e){
      try{
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){}
}
}
  return xmlHttp;
}
public String findByName() throws IOException {
  // 调用Service进行查询:
  User existUser = userService.findByUsername(user.getUsername());
  // 获得response对象,项页面输出:
  HttpServletResponse response = ServletActionContext.getResponse();
  response.setContentType("text/html;charset=UTF-8");
  // 判断
  if (existUser != null) {
    // 查询到该用户:用户名已经存在
    response.getWriter().println("<font color='red'>用户名已经存在</font>");
  } else {
    // 没查询到该用户:用户名可以使用
    response.getWriter().println("<font color='green'>用户名可以使用</font>");
  }
  return NONE;
}

JS表单前台校验模板的更多相关文章

  1. 【转】vue.js表单校验详解

    官方文档:https://monterail.github.io/vuelidate/ https://github.com/monterail/vuelidate 1.npm安装vue-valida ...

  2. Vue.js表单校验;动画指令;避免内存泄露。

    Vue.js表单校验: 动画指令:创建自定义的滚动指令. 避免内存泄露. 避免内存泄露 在单页面应用开发时SPA,用户无需刷新浏览器.所以javascript应用需要自行清理组件来防止内存占用不断增长 ...

  3. jquery.validation.js 表单验证

    jquery.validation.js 表单验证   官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuer ...

  4. Jquery.validate.js表单验证插件的使用

    作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...

  5. JS表单验证-12个常用的JS表单验证

    JS表单验证-12个常用的JS表单验证 最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 <p>1. 长度 ...

  6. js 表单验证控制代码大全

    js表单验证控制代码大全 关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:目录:1:js 字符串长度限制.判断字符长度 .js限制输入.限制不能输入.textarea 长 ...

  7. node.js表单——formidable/////z

    node.js表单--formidable   node处理表单请求,需要用到formidable包.安装formidable包的命令如下: npm install formidable 安装pack ...

  8. angular js 表单验证

    <!doctype html> <html ng-app="myapp"> <head> <meta charset="UTF- ...

  9. Angular2.js——表单(上)

    表单创建一个有效.引人注目的数据输入体验.Angular表单协调一组数据绑定控件,跟踪变更.验证输入的有效性,并且显示错误信息. 接下来,主要内容有: 1.使用组件和模板构建Angular表单: 2. ...

随机推荐

  1. eclipse项目打包

    一.直接在eclipse里export即可 二.如果需要打好的包可以直接使用,则需要修改包中的META-INF文件夹中的MANIFEST.MF文件,主要可能会涉及到的字段主要有以下两个. 1.Main ...

  2. mysql语句入门

    show databases;      展示可以用的数据库: use employees;        进入数据库: show tables;             展示可用的列表.   sho ...

  3. iptables原理

    1.iptables防火墙简介 Iptables也叫netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入.流出.流经服务器的数据包进 ...

  4. C语言操作注册表 写入 读取信息

    #include <stdio.h>#include <windows.h>int main(void){char regname[]="Software\\Micr ...

  5. s:if 判断

    判断 ArrayList size 是否为0 <s:if test="list.size==0"> <s:if> <s:else> </s ...

  6. MySQL 权限与安全

    一.MySQL权限系统通过两个阶段进行认证: (A) 对用户进行身份认证,IP地址和用户名联合, (B) 对合法用户赋予相应权限,权限表在数据库启动的时候载入内存中. 二.在权限的存取过程中,会用到& ...

  7. BZOJ 3784: 树上的路径

    Description 问一棵树上前 \(k\) 大路径的边权. Sol 边分治. 非常感谢数据没有菊花图. 为了写写边分治试试然后就开了这道题. 边分治非常好想,选一条重边,分成两部分,然后分别求最 ...

  8. Microsoft QAS架接项目

    1,p位置玩文件后.运行程序命令是: QCSQueryLabelWithLES.exe -c %CD%\FinalQASModelDir --variant AMyMovie --outputFull ...

  9. Django缓存系统设置

    参考: http://lesliezhu.github.io/public/2016/04/19/django-cache.html http://www.opscoder.info/django_c ...

  10. centos 6.5 安装django

     首先做这个:python安装setuptools   http://blog.csdn.net/zhuying_linux/article/details/8167430  CentOS下将2.6升 ...