用servlet验证表单:
以下是javascrpt的内容不过JS中的文件(第60行) responseXmlHandler(req.responseText);这里必须改为responseText.
<script type="text/javascript" src = "js/ajax.js">
</script>
<script>
function A() {
var request = newXMLHttpRequest();
var email = document.getElementById('email').value;
request.onreadystatechange = getReadyStateHandler(request,B);
request.open('POST','AjaxServlet',true);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send('email=' + email);
}
function B(aa) {
if(aa == '0') {
document.getElementById('infoEmail').innerHTML = "<span style='color:red'>可以注册</span>";
} else {
document.getElementById('infoEmail').innerHTML = "<div style ='color:red'>邮件地址重复了
</div>";
}
}
</script>
servlet中的内容
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String email = request.getParameter("email");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
if(userDaoImpl.getUserByEmail(email) == null){//从数据库查询若能查到则是1不以查到则是0
out.print("1");
} else {
out.print("0");
}
out.flush();
out.close();
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------以下是用action验证的
Action中的内容:
public ActionForward checkEmail(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse
response) throws Exception {
String email = request.getParameter("email");
PrintWriter printWriter = response.getWriter();
response.setContentType("text/xml");
printWriter.write(xmlEmailStr(email));
return null;
}
public static String (xmlEmailStr(String email)) {
StringBuffer xmlBuffer = new StringBuffer();
xmlBuffer.append("<user>");
xmlBuffer.append("<email>");
xmlBuffer.append(email);
xmlBuffer.append("</email>");
xmlBuffer.append("<ishave>");
UserDaoImpl userDaoImpl = new UserDaoImpl();
if(userDaoImpl.getUserByEmail(email) == null){//从数据库查询若能查到则是1不以查到则是0
xmlBuffer.append("0");
} else {
xmlBuffer.append("1");
}
xmlBuffer.append("</ishave>");
xmlBuffer.append("</user>");
return xmlBuffer.toString();
}
javascript中的内容:不过JS中的文件(第60行) responseXmlHandler(req.responseText);必须是(req.responseXML);若是用servlet验证则是
responseText.
function A1() {
var email = document.getElementById("email").value;
if(email == null || email == "") {
document.getElementById('infoEmail').innerHTML = "<div style ='color:red'>不能为空</div>";
} else {
var request = newXMLHttpRequest();
request.onreadystatechange = getReadyStateHandler(request,B1);//将请求发送回B1
request.open('POST',"ajaxAction.do?method=checkEmail",true);//向后台发出请求并传参数调用哪一个方法
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send("email=" + email);//向后台传的参数
}
}
function B1(xmlData) {
var user = xmlData.getElementsByTagName("user")[0];
var isHave = user.getElementsByTagName("ishave")[0].firstChild.nodeValue;
if(isHave == '0') {
document.getElementById('infoEmail').innerHTML = "<span style='color:red'>可以注册</span>";
} else {
document.getElementById('infoEmail').innerHTML = "<div style ='color:red'>邮件地址重复了
</div>";
}
}
让文本框调用onblur;='A!()'