ajax检查用户名异步实现:
<script type="text/javascript">
<!--
var http_request;
function reader()
{
if (window.XMLHttpRequest)
{ // if Mozilla, Safari etc
http_request=new XMLHttpRequest()
if (http_request.overrideMimeType)
http_request.overrideMimeType('text/xml');
}
else if (window.ActiveXObject)
{ // if IE
try {
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
}
}
var userName=document.regForm.coUserName.value;
http_request.onreadystatechange=process;
//servlet文件名一定要全小写
http_request.open("GET","checkCoUserName.do?userName="+userName);
http_request.send(null);
}
function process()
{
if(http_request.readyState==4)
{
var chkResult = http_request.responseText;
if(chkResult==1)
{
document.getElementById("chkName").innerHTML="<font color='red'>恭喜用户名可以使用!</font>";
}
else
{
document.getElementById("chkName").innerHTML="<font color='red'>此用户名已经存在!请换一个用户名!</font>";
}
}
}
-->
</script>
注意:当失去焦点时,发送信息 οnblur="reader()" ,reader里面有发送请求.do的字duan,
Struts action中只要out.pritnln(1)或0,然后forward可以为空!这样就行了。
注意:提交的信息给一个action处理,异步检查用户名的给另一个action处理!两个action!
<html>
<td align="left" valign="middle" background="images/regist_CoUser_bj01.jpg" class="white">
<img src="images/regist_pic04.gif" width="10" height="10"> 用户登陆
<span class="style1">*</span></td>
<td align="left" valign="middle" background="images/regist_CoUser_bj02.jpg" class="black">
<input name="coUserName" type="text" size="20" maxlength="20" οnblur="reader()" />
</html>
Struts action:
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws IOException {
String sucTarget = "";
String failTarget = "regFail";
PrintWriter out = response.getWriter();
String coUserName = request.getParameter("userName"); //获得传过来的值
RegistControlBean regConBean = new RegistControlBean();
if(!regConBean.isExistCoUserName(coUserName)) { //用户名不存在,即可用
out.println("1");
}else {
out.println("2");
}
return mapping.findForward("");
}