ajax 异步验证

function checkusername(){
var username=document.getElementById("").value;
//1.创建XMLHttp协议对象
var xmlHttp;
if(window.ActiveXObject){
xmlHttp=newActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp=newXMLHttpRequest();
}else{
alert('您的浏览器不支持Ajax验证');
}
//2.创建一个请求
varmethod="GET";
//将中文参数值转成UTF-8编码,解决传递参数的中文问题
var url="TestAjaxAndValidatorAction!CheckUser.action?username="+username;
url=encodeURI(url);
xmlHttp.open(method,url);
//3.设置readyState响应处理函数
xmlHttp.onreadystatechange=function(){
//判断是否已经完成
if(xmlHttp.readyState==4){
//判断响应是否正常
if(xmlHttp.status==200){
//获取服务端响应的字符串
var result=xmlHttp.responseText;
//document.getElementById("xxx").innerHTML=result;
alert(result);
}
}
}
//4.发送请求
xmlHttp.send();
}

jsp:

<s:formaction="TestAjaxAndValidatorAction!insertUser.action"method="post">
<s:textfieldlabel="用户名"id="userName"name="userName"onblur="checkusername();"></s:textfield>
<s:textfieldlabel="密码"name="password"></s:textfield>
<s:submitvalue="注册用户"></s:submit>
</s:form>

提交时验证到后台action

在action里调用数据库对用户名进行验证,可用response.getWriter().write()方法写入

也可以在配置文件中

<resultname="success">
<paramname="resultValue">$resultValue}</param>
</result>

注:action里直接给resultValue复制,(最好为全局变量)

原文地址:https://www.cnblogs.com/xiehaoyu/p/3417935.html