用Ajax完成一个简单的验证
2007-12-17 10:54
302 查看
业务逻辑:一个标准的输入框,要求输入日期格式的文本,符合要求用绿字显示信息,否则用红字提示。
页面:Validation.html
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
使用ajax进行验证
</title>
<script type="text/javascript">
//xmlHttpRequest对象
var xmlHttp;
//创建xmlHttpRequest对象
function createXMLHttpRequest(){
if (window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
//验证方法
function validate(){
//创建对象
createXMLHttpRequest();
//得到表单日期值
var date = document.getElementById("birthDate");
//提交地址
var url = "ValidationServlet?birthDate=" + escape(date.value);
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);
}
//回调方法
function callback(){
if (xmlHttp.readyState == 4){
if (xmlHttp.status == 200){
var mes = xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
var val = xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;
//设置提示信息
setMessage(mes,val);
}
}
}
//设置提示信息
function setMessage(message,isValid){
var messageArea = document.getElementById("dateMessage");
var fontColor = "red";
if (isValid == "true"){
fontColor = "green";
}
messageArea.innerHTML="<font color=" + fontColor + ">" + message + "</font>";
}
</script>
</head>
<body>
<h1>
Ajax Validation Example
</h1>
Birth date:<input type="text" size="10" id="birthDate" onchange="validate();"/>
<div id="dateMessage"></div>
</body>
</html>
服务器端代码,执行验证
ValidationServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.text.SimpleDateFormat;
public class ValidationServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
/**
* 处理Get请求
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws ServletException
* @throws IOException
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
//得到输出对象
PrintWriter out = response.getWriter();
//得到日期值,作为参数验证
boolean passed = validateDate(request.getParameter("birthDate"));
response.setContentType("text/xml");
response.setHeader("Cache-control","no-cache");
String message = "You have entered an invalid date.";
if (passed){
message = "You have entered a valid date.";
}
//输入xml格式字符串
out.println("<response>");
out.println("<passed>" + Boolean.toString(passed) + "</passed>");
out.println("<message>" + message + "</message>");
out.println("</response>");
out.close();
}
//Clean up resources
public void destroy() {
}
/**
* 验证日期
* @param date String 日期
* @return boolean
*/
private boolean validateDate(String date){
boolean isValid = true;
if (date != null){
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
try {
formatter.parse(date);
}
catch (Exception ex) {
System.out.println(ex.toString());
isValid = false;
}
}
else{
isValid = false;
}
return isValid;
}
}
页面:Validation.html
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
使用ajax进行验证
</title>
<script type="text/javascript">
//xmlHttpRequest对象
var xmlHttp;
//创建xmlHttpRequest对象
function createXMLHttpRequest(){
if (window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
//验证方法
function validate(){
//创建对象
createXMLHttpRequest();
//得到表单日期值
var date = document.getElementById("birthDate");
//提交地址
var url = "ValidationServlet?birthDate=" + escape(date.value);
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);
}
//回调方法
function callback(){
if (xmlHttp.readyState == 4){
if (xmlHttp.status == 200){
var mes = xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
var val = xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;
//设置提示信息
setMessage(mes,val);
}
}
}
//设置提示信息
function setMessage(message,isValid){
var messageArea = document.getElementById("dateMessage");
var fontColor = "red";
if (isValid == "true"){
fontColor = "green";
}
messageArea.innerHTML="<font color=" + fontColor + ">" + message + "</font>";
}
</script>
</head>
<body>
<h1>
Ajax Validation Example
</h1>
Birth date:<input type="text" size="10" id="birthDate" onchange="validate();"/>
<div id="dateMessage"></div>
</body>
</html>
服务器端代码,执行验证
ValidationServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.text.SimpleDateFormat;
public class ValidationServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
/**
* 处理Get请求
* @param request HttpServletRequest
* @param response HttpServletResponse
* @throws ServletException
* @throws IOException
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
//得到输出对象
PrintWriter out = response.getWriter();
//得到日期值,作为参数验证
boolean passed = validateDate(request.getParameter("birthDate"));
response.setContentType("text/xml");
response.setHeader("Cache-control","no-cache");
String message = "You have entered an invalid date.";
if (passed){
message = "You have entered a valid date.";
}
//输入xml格式字符串
out.println("<response>");
out.println("<passed>" + Boolean.toString(passed) + "</passed>");
out.println("<message>" + message + "</message>");
out.println("</response>");
out.close();
}
//Clean up resources
public void destroy() {
}
/**
* 验证日期
* @param date String 日期
* @return boolean
*/
private boolean validateDate(String date){
boolean isValid = true;
if (date != null){
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
try {
formatter.parse(date);
}
catch (Exception ex) {
System.out.println(ex.toString());
isValid = false;
}
}
else{
isValid = false;
}
return isValid;
}
}
相关文章推荐
- 利用ajax技术验证数据是否存在的一个简单例子
- 如何用phototype框架实现一个简单的ajax验证
- 一个简单的ajax|jquery实现的留言板(未做安全验证)
- php+echarts+ajax完成一个简单的折线图
- Ajax一个简单入门程序(用户登录验证)
- 一个简单的用ajax验证注册用户名是否存在的例子
- 一个简单的注册登录页面(包括阿里大于的手机验证)html+JS+AJAX+PHP
- 东软学习,AJAX的一个简单验证用户名实例
- Ajax完成一个简单的HelloWorld程序
- Ajax完成一个简单的HelloWorld程序
- 使用ajax完成一个简单加法运算
- 一个基于Ajax简单的数据验证
- Ajax完成一个简单的HelloWorld程序
- 一个基于Ajax简单的数据验证
- 用struts2 完成一个简单的通讯录,实现增删改查,分页,文件上传(头像),表单验证(两种方法)
- 一个简单的ajax封装
- Ajax实现局部刷新和异步处理简单应用(实现简单注册验证)
- 一个简单的AJAX示例
- 完成了一个问题的解决 AJAX加入到分子项目的系统中
- 一个最简单的基于PHP+jQuery的AJAX例子