Ajax日期验证

来源:互联网 发布:合肥学c语言的培训班 编辑:程序博客网 时间:2024/06/06 02:03




html页面部分:
<html>
<head>
<title>Using Ajax for validation</title>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
//判断浏览器是否支持ActiveX控件
if (window.ActiveXObject) {
//支持则通过ActiveXObject的一个新实例来创建XMLHttpRequest对象
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//否则把XMLHttpRequest实现为一个本地JavaScript对象。
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function validate() {
createXMLHttpRequest();
var date = document.getElementById("birthDate");
var url = "servlet/ValidationServlet?birthDate=" + escape(date.value);
//设置未决的请求的目标 URL, 方法, 和其他参数
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 实例</h1>
生日: <input type="text" size="10" id="birthDate" onchange="validate();"/>
<div id="dateMessage"></div>
</body>
</html>
servlet部分:
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class ValidationServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
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..";
}
//输出结果
out.println("<response>");
out.println("<passed>" + Boolean.toString(passed) + "</passed>");
out.println("<message>" + message + "</message>");
out.println("</response>");
out.close();
}
private boolean validateDate(String date) {
boolean isValid = true;
//判断日期格式
if(date != null) {
//格式化日期
SimpleDateFormat formatter= new SimpleDateFormat("MM/dd/yyyy");
try {
formatter.parse(date);
} catch (ParseException pe) {
System.out.println(pe.toString());
isValid = false;
}
} else {
isValid = false;
}
//返回判断结果
return isValid;
}
}


当输入一个生日时,页面会将输入的内容发送到服务器端进行判断,并将结果显示在页面上,如图5-2所示。

 

5-2  正确的生日验证



html页面部分:
<html>
<head>
<title>Using Ajax for validation</title>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
//判断浏览器是否支持ActiveX控件
if (window.ActiveXObject) {
//支持则通过ActiveXObject的一个新实例来创建XMLHttpRequest对象
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//否则把XMLHttpRequest实现为一个本地JavaScript对象。
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function validate() {
createXMLHttpRequest();
var date = document.getElementById("birthDate");
var url = "servlet/ValidationServlet?birthDate=" + escape(date.value);
//设置未决的请求的目标 URL, 方法, 和其他参数
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 实例</h1>
生日: <input type="text" size="10" id="birthDate" onchange="validate();"/>
<div id="dateMessage"></div>
</body>
</html>
servlet部分:
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class ValidationServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
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..";
}
//输出结果
out.println("<response>");
out.println("<passed>" + Boolean.toString(passed) + "</passed>");
out.println("<message>" + message + "</message>");
out.println("</response>");
out.close();
}
private boolean validateDate(String date) {
boolean isValid = true;
//判断日期格式
if(date != null) {
//格式化日期
SimpleDateFormat formatter= new SimpleDateFormat("MM/dd/yyyy");
try {
formatter.parse(date);
} catch (ParseException pe) {
System.out.println(pe.toString());
isValid = false;
}
} else {
isValid = false;
}
//返回判断结果
return isValid;
}
}


当输入一个生日时,页面会将输入的内容发送到服务器端进行判断,并将结果显示在页面上,如图5-2所示。

 

5-2  正确的生日验证

0 0
原创粉丝点击