jsp文件中:
<script language="javascript">
var request;
try{
request = new XMLHttpRequest();
}catch(e){
try{
request = new ActiveXObject("MSXML2.XMLHTTP");
}catch(e){
request = new ActiveXObject("MICROSOFT.XMLHTTP");
}
}
function query(){
//获取文本框内容
//var userName = document.registerForm.username.value;
var userName = document.getElementById("userName");
var url = "${pageContext.request.contextPath}/user/username.do?username=" + userName
//一般用GET方式提交,若用POST方式则需要自己设置http请求头
request.open("GET",url,true);
//设置回调函数
request.onreadystatechange = deal;
request.send(null);
}
function deal(){
if(request.readyState == 4 && request.status == 200){
document.getElementById("usernameHints").innerHTML = request.responseText;
}
}
</script>
<form name="registerForm" action="${pageContext.request.contextPath}/user/register.do" method="post">
<input name="username" type="text" onBlur="query()" value="${registerActionForm.username}">
<span class="redfont" id="usernameHints"></span>
</form>
=============================================
action中(struts1)
public ActionForward checkUserName(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException {
LogOutPut.getInstance().debug("checkUserName");
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
boolean isRegister = userUtil.isRegister(request.getParameter("username"));
if("".equals(request.getParameter("username"))){
out.println("请输入用户名(action)");
}else {
if(isRegister){
LogOutPut.getInstance().debug("已经被注册");
out.println(request.getParameter("username") + " 已经被注册");
}else {
out.println("恭喜,该用户名可以使用");
}
}
out.close();
return null;
}
=============================================
=============================================
使用jQuery来简化AJAX
下载jQuery文件jquery-1.3.2.js,并将其加入web工程中。
jsp页面
<script type="text/javascript" src="js/jquery-1.3.2.js">
</script>
<script language="javascript">
function query() {
var obj = $("#username");
var username = obj.val();
$.get("user/username.do?username=" + username, null, callback);
}
function callback(data) {
var resultObj = $("#usernameresult");
resultObj.html(data);
}
</script>
jsp页面中要引入jQuery的js文件。
<input id="username" name="username" type="text" οnblur="query()"/>
<span id="usernameresult"></span>
jsp页面中的input要有id属性,因为jQuety是根据id来查找节点的。