Ajax实现验证(3/4)

前端之家收集整理的这篇文章主要介绍了Ajax实现验证(3/4)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在这个例子中使用java servlet作为服务器端组件,完成验证日期功能
例子包括2个文件,分别是validation.html和ValidationServlet.java

HTML代码里,有一个输入框,相应的onchange事件会触发验证方法
首先调用createXMLHttpRequest()方法,然后把输入值发送到ValidationServlet.
callback()方法从服务器得到结果,然后委托给setMessage()方法,这个方法会检查值以确定使用什么颜色来显示消息。

以下是完整的源代码

  1. <@H_301_14@!DOCTYPE@H_301_14@ HTML@H_301_14@ PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"@H_301_14@>@H_301_14@
    @H_301_14@
  2. <@H_301_14@html@H_301_14@>@H_301_14@
  3. <@H_301_14@head@H_301_14@>@H_301_14@
  4. <@H_301_14@title@H_301_14@>@H_301_14@validation.@H_301_14@html@H_301_14@<@H_301_14@/@H_301_14@title@H_301_14@>@H_301_14@
  5. <@H_301_14@Meta@H_301_14@ http-equiv=@H_301_14@"content-type"@H_301_14@ content@H_301_14@=@H_301_14@"text/html; charset=UTF-8"@H_301_14@>@H_301_14@
  6. <@H_301_14@script@H_301_14@ language@H_301_14@=@H_301_14@"javascript"@H_301_14@ type@H_301_14@=@H_301_14@"text/javascript"@H_301_14@>@H_301_14@
  7. var@H_301_14@ xmlHttp;@H_301_14@

  8. function createXMLHttpRequest(@H_301_14@)@H_301_14@{@H_301_14@
  9. if(@H_301_14@window.@H_301_14@ActiveXObject)@H_301_14@{@H_301_14@
  10. xmlHttp =@H_301_14@ new ActiveXObject(@H_301_14@"Microsoft.XMLHTTP"@H_301_14@)@H_301_14@;@H_301_14@
  11. }@H_301_14@
  12. else if(@H_301_14@window.@H_301_14@XMLHttpRequest)@H_301_14@{@H_301_14@
  13. xmlHttp =@H_301_14@ new XMLHttpRequest(@H_301_14@)@H_301_14@;@H_301_14@
  14. }@H_301_14@
  15. }@H_301_14@

  16. function validate(@H_301_14@)@H_301_14@{@H_301_14@

  17. createXMLHttpRequest(@H_301_14@)@H_301_14@;@H_301_14@

  18. var@H_301_14@ date =@H_301_14@ document.@H_301_14@getElementById(@H_301_14@"birthDate"@H_301_14@)@H_301_14@;@H_301_14@
  19. var@H_301_14@ url =@H_301_14@ "servlet/ValidationServlet?birthDate="@H_301_14@ +@H_301_14@ escape(@H_301_14@date.@H_301_14@value@H_301_14@)@H_301_14@;@H_301_14@
  20. xmlHttp.@H_301_14@open(@H_301_14@"GET"@H_301_14@,@H_301_14@url,@H_301_14@true)@H_301_14@;@H_301_14@
  21. xmlHttp.@H_301_14@onreadystatechange =@H_301_14@ callback;@H_301_14@
  22. xmlHttp.@H_301_14@send(@H_301_14@null)@H_301_14@;@H_301_14@


  23. }@H_301_14@

  24. function callback(@H_301_14@)@H_301_14@{@H_301_14@
  25. if(@H_301_14@xmlHttp.@H_301_14@readyState =@H_301_14@=@H_301_14@ 4)@H_301_14@{@H_301_14@
  26. if(@H_301_14@xmlHttp.@H_301_14@status =@H_301_14@=@H_301_14@ 200)@H_301_14@{@H_301_14@

  27. var@H_301_14@ mes =@H_301_14@ xmlHttp.@H_301_14@respon***ML.@H_301_14@getElementsByTagName(@H_301_14@"message"@H_301_14@)@H_301_14@[@H_301_14@0]@H_301_14@.@H_301_14@firstChild.@H_301_14@data@H_301_14@;@H_301_14@
  28. /@H_301_14@/@H_301_14@ alert(@H_301_14@xmlHttp.@H_301_14@respon***ML.@H_301_14@getElementsByTagName(@H_301_14@"message"@H_301_14@)@H_301_14@[@H_301_14@0]@H_301_14@.@H_301_14@firstChild.@H_301_14@data@H_301_14@)@H_301_14@;@H_301_14@
  29. var@H_301_14@ val =@H_301_14@ xmlHttp.@H_301_14@respon***ML.@H_301_14@getElementsByTagName(@H_301_14@"passed"@H_301_14@)@H_301_14@[@H_301_14@0]@H_301_14@.@H_301_14@firstChild.@H_301_14@data@H_301_14@;@H_301_14@
  30. setMessage(@H_301_14@mes,@H_301_14@val)@H_301_14@;@H_301_14@

  31. }@H_301_14@
  32. }@H_301_14@
  33. }@H_301_14@


  34. function setMessage(@H_301_14@message,@H_301_14@isValid)@H_301_14@{@H_301_14@
  35. var@H_301_14@ messageArea =@H_301_14@ document.@H_301_14@getElementById(@H_301_14@"dateMessage"@H_301_14@)@H_301_14@;@H_301_14@
  36. var@H_301_14@ fontColor =@H_301_14@ "red"@H_301_14@;@H_301_14@
  37. if(@H_301_14@isValid=@H_301_14@=@H_301_14@ "true"@H_301_14@)@H_301_14@{@H_301_14@
  38. fontColor =@H_301_14@ "green"@H_301_14@;@H_301_14@
  39. }@H_301_14@

  40. messageArea.@H_301_14@innerHTML =@H_301_14@ "<p style=\'color:"@H_301_14@ +@H_301_14@ fontColor +@H_301_14@"\'>"@H_301_14@ +@H_301_14@ message +@H_301_14@ "</p>"@H_301_14@;@H_301_14@
  41. }@H_301_14@
  42. <@H_301_14@/@H_301_14@script@H_301_14@>@H_301_14@
  43. <@H_301_14@/@H_301_14@head@H_301_14@>@H_301_14@

  44. <@H_301_14@body@H_301_14@>@H_301_14@
  45. <@H_301_14@h2@H_301_14@>@H_301_14@Ajax validation Example<@H_301_14@/@H_301_14@h2@H_301_14@>@H_301_14@
  46. Birth Date(@H_301_14@MM/@H_301_14@dd@H_301_14@/@H_301_14@yyyy)@H_301_14@:@H_301_14@<@H_301_14@input@H_301_14@ type@H_301_14@=@H_301_14@"text"@H_301_14@ size@H_301_14@=@H_301_14@"10"@H_301_14@ id@H_301_14@=@H_301_14@"birthDate"@H_301_14@ value@H_301_14@=@H_301_14@"11/11/2011"@H_301_14@ onchange@H_301_14@=@H_301_14@"validate();"@H_301_14@ /@H_301_14@>@H_301_14@
  47. <@H_301_14@div@H_301_14@ id@H_301_14@=@H_301_14@"dateMessage"@H_301_14@>@H_301_14@<@H_301_14@/@H_301_14@div@H_301_14@>@H_301_14@
  48. <@H_301_14@/@H_301_14@body@H_301_14@>@H_301_14@
  49. <@H_301_14@/@H_301_14@html@H_301_14@>@H_301_14@

  1. package@H_301_14@ ajax.@H_301_14@study;@H_301_14@
    @H_301_14@

  2. import@H_301_14@ java@H_301_14@.@H_301_14@io@H_301_14@.@H_301_14@IOException@H_301_14@;@H_301_14@
  3. import@H_301_14@ java@H_301_14@.@H_301_14@io@H_301_14@.@H_301_14@PrintWriter@H_301_14@;@H_301_14@
  4. import@H_301_14@ java@H_301_14@.@H_301_14@text@H_301_14@.@H_301_14@ParseException@H_301_14@;@H_301_14@
  5. import@H_301_14@ java@H_301_14@.@H_301_14@text@H_301_14@.@H_301_14@SimpleDateFormat@H_301_14@;@H_301_14@

  6. import@H_301_14@ javax@H_301_14@.@H_301_14@servlet.@H_301_14@ServletException;@H_301_14@
  7. import@H_301_14@ javax@H_301_14@.@H_301_14@servlet.@H_301_14@http.@H_301_14@HttpServlet;@H_301_14@
  8. import@H_301_14@ javax@H_301_14@.@H_301_14@servlet.@H_301_14@http.@H_301_14@HttpServletRequest;@H_301_14@
  9. import@H_301_14@ javax@H_301_14@.@H_301_14@servlet.@H_301_14@http.@H_301_14@HttpServletResponse;@H_301_14@

  10. public@H_301_14@ class@H_301_14@ ValidationServlet extends@H_301_14@ HttpServlet {@H_301_14@

  11. private@H_301_14@ static@H_301_14@ final@H_301_14@ long@H_301_14@ serialVersionUID =@H_301_14@ 1L;@H_301_14@


  12. public@H_301_14@ void@H_301_14@ doGet(@H_301_14@HttpServletRequest request@H_301_14@,@H_301_14@ HttpServletResponse response)@H_301_14@
  13. throws@H_301_14@ ServletException,@H_301_14@ IOException@H_301_14@ {@H_301_14@

  14. PrintWriter@H_301_14@ out =@H_301_14@ response.@H_301_14@getWriter@H_301_14@(@H_301_14@)@H_301_14@;@H_301_14@
  15. response.@H_301_14@setContentType@H_301_14@(@H_301_14@"text/xml"@H_301_14@)@H_301_14@;@H_301_14@
  16. boolean@H_301_14@ passed =@H_301_14@ validateDate(@H_301_14@request@H_301_14@.@H_301_14@getParameter@H_301_14@(@H_301_14@"birthDate"@H_301_14@)@H_301_14@)@H_301_14@;@H_301_14@
  17. response.@H_301_14@setHeader(@H_301_14@"Cache-Control"@H_301_14@,@H_301_14@ "no-cache"@H_301_14@)@H_301_14@;@H_301_14@
  18. String@H_301_14@ message =@H_301_14@ "You have entered an invalid date"@H_301_14@;@H_301_14@
  19. if@H_301_14@(@H_301_14@passed)@H_301_14@{@H_301_14@

  20. message =@H_301_14@ "You have entered a valid date"@H_301_14@;@H_301_14@
  21. }@H_301_14@
  22. out.@H_301_14@println@H_301_14@(@H_301_14@"<response>"@H_301_14@)@H_301_14@;@H_301_14@
  23. out.@H_301_14@println@H_301_14@(@H_301_14@"<passed>"@H_301_14@ +@H_301_14@ Boolean@H_301_14@.@H_301_14@toString@H_301_14@(@H_301_14@passed)@H_301_14@ +@H_301_14@ "</passed>"@H_301_14@)@H_301_14@;@H_301_14@
  24. out.@H_301_14@println@H_301_14@(@H_301_14@"<message>"@H_301_14@ +@H_301_14@ message +@H_301_14@"</message>"@H_301_14@)@H_301_14@;@H_301_14@
  25. out.@H_301_14@println@H_301_14@(@H_301_14@"</response>"@H_301_14@)@H_301_14@;@H_301_14@

  26. out.@H_301_14@close@H_301_14@(@H_301_14@)@H_301_14@;@H_301_14@
  27. }@H_301_14@


  28. private@H_301_14@ boolean@H_301_14@ validateDate(@H_301_14@String@H_301_14@ date@H_301_14@)@H_301_14@ {@H_301_14@

  29. boolean@H_301_14@ isValid@H_301_14@ =@H_301_14@ true;@H_301_14@
  30. if@H_301_14@(@H_301_14@date@H_301_14@ !@H_301_14@=@H_301_14@ null@H_301_14@)@H_301_14@{@H_301_14@
  31. SimpleDateFormat@H_301_14@ formatter@H_301_14@ =@H_301_14@ new@H_301_14@ SimpleDateFormat@H_301_14@(@H_301_14@"MM/dd/yyyy"@H_301_14@)@H_301_14@;@H_301_14@
  32. try@H_301_14@{@H_301_14@
  33. formatter@H_301_14@.@H_301_14@parse@H_301_14@(@H_301_14@date@H_301_14@)@H_301_14@;@H_301_14@
  34. }@H_301_14@catch@H_301_14@(@H_301_14@ParseException@H_301_14@ pe)@H_301_14@{@H_301_14@
  35. System@H_301_14@.@H_301_14@out.@H_301_14@println@H_301_14@(@H_301_14@pe.@H_301_14@toString@H_301_14@(@H_301_14@)@H_301_14@)@H_301_14@;@H_301_14@
  36. isValid@H_301_14@ =@H_301_14@ false;@H_301_14@
  37. }@H_301_14@
  38. }@H_301_14@
  39. else@H_301_14@{@H_301_14@
  40. isValid@H_301_14@ =@H_301_14@ false;@H_301_14@
  41. }@H_301_14@
  42. return@H_301_14@ isValid@H_301_14@;@H_301_14@
  43. }@H_301_14@


  44. public@H_301_14@ void@H_301_14@ doPost(@H_301_14@HttpServletRequest request@H_301_14@,@H_301_14@ IOException@H_301_14@ {@H_301_14@

  45. doGet(@H_301_14@request@H_301_14@,@H_301_14@response)@H_301_14@;@H_301_14@
  46. }@H_301_14@


  47. }@H_301_14@

猜你在找的Ajax相关文章