如何检查ajax技术是否成功,AJAX_实现基本Ajax技术 4.1 完成验证, 我们已经介绍了Ajax技术,也 - phpStudy...

Using Ajax for validation

var xmlHttp;

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 = ""

+ message + " ";

}

Ajax Validation Example

Birth date:

服务器端代码也很简单(见代码清单4-2)。为简单起见,这里把验证代码放在servlet中,而在生产环境中很可能会把验证代码委托给验证服务。

代码清单4-2 ValidationServlet.java

package ajaxbook.chap4;

import java.io.*;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import javax.servlet.*;

import javax.servlet.http.*;

public class ValidationServlet extends HttpServlet {

/** Handles the HTTP GET method.

* @param request servlet request

* @param response servlet response

*/

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("");

out.println("" + Boolean.toString(passed) + "");

out.println("" + message + "");

out.println("");

out.close();

}

/**

* Checks to see whether the argument is a valid date.

* A null date is considered invalid. This method

* used the default data formatter and lenient

* parsing.

*

* @param date a String representing the date to check

* @return message a String representing the outcome of the check

*/

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;

}

}

运行这个例子会得到图4-1和图4-2所示的结果。

图4-1 输入非法的日期

图4-2 输入合法的日期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值