在JSP页面下使用AJAX实现用户名存在的检测

请把我写如题代码注:我用的是MYSQL数据库,当我输入用户名时,input失去焦点时会自动检测用户名是否存在,存在显示用户名已占用,不存在显示用户名可用,并显示在页面上。... 请把我写如题代码注:我用的是MYSQL数据库,当我输入用户名时,input失去焦点时会自动检测用户名是否存在,存在显示用户名已占用,不存在显示用户名可用,并显示在页面上。请注释详细点没怎么仔细学过AJAX,懂JS。 展开
 我来答
叶秋雨
推荐于2017-11-25 · TA获得超过2077个赞
知道大有可为答主
回答量:2035
采纳率:0%
帮助的人:651万
展开全部
<script type="text/javascript">
function init(){
document.getElementById("username").focus();
}
function validate(userfield) {
if (trim(userfield.value).length != 0) {
var xmlHttpRequest = null;
var url = "../AccountIsExistServlet?account=" + userfield.value;
var usermsg = document.getElementById("usermsg");
if (window.XMLHttpRequest) {//表示当前浏览器不是IE
xmlHttpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpRequest.open("GET", url, true);//设置请求方式为GET,设置请求的URL,设置为异步提交
xmlHttpRequest.onreadystatechange = function(){//将方法地址复制给onreadystatechange属性
if(xmlHttpRequest.readyState == 4){//Ajax引擎状态为成功
if(xmlHttpRequest.status == 200){//HTTP协议状态为成功
if(trim(xmlHttpRequest.responseText) != ""){
usermsg.innerHTML = "<font color='red'>" + trim(xmlHttpRequest.responseText) + "</font>";
userfield.focus();
}else{
usermsg.innerHTML = "恭喜您,用户名可以使用。 ";
}
}else{
alert("请求失败,错误码=" + xmlHttp.status);
}
}
};
xmlHttpRequest.send(null);//将设置信息发送到Ajax引擎
}else{
usermsg.innerHTML = "";
}
}
<tr height="30px;">
    <td><font color="#FF0000">*</font>用户名:</td>
    <td><input type="text" name="account" id="username" maxlength="12" onblur="validate(this)"/></td>
    <td width="220px;"><span id="usermsg"></span></td>
</tr>
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.gas.bo.UserInfoBO;

@WebServlet("/AccountIsExistServlet")
public class AccountIsExistServlet extends HttpServlet {

protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 阻止缓存
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-store"); // HTTP1.1
response.setHeader("Pragma", "no-cache"); // HTTP1.0
response.setDateHeader("Expires", 0); // prevents catching at proxy
// server

PrintWriter out = response.getWriter();

//js传过来的汉字进行转码,避免汉字的时候会出现乱码
String account = request.getParameter("account");
UserInfoBO userInfoBO = new UserInfoBO();
boolean b = userInfoBO.accountIsExist(account);
if (b) {
out.print("用户名已存在,请重新输入。");
}
}

}

第一部分js,ajax。第二部分html。第三部分servlet。。。有不理解的地方继续问我。

追问
求QQ号或者是EMAIL我修改了份代码但是运行不了~~~求解
追答
52_25_30_685
虚之源
2013-07-22 · TA获得超过313个赞
知道小有建树答主
回答量:484
采纳率:50%
帮助的人:192万
展开全部
使用jquery
用它里面的validate.js插件。
$().ready(function(){
$(form).validate({

rulus:{

},

messages:{

},
.....

});

});

楼主自己百度下吧,这里就不细说了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山下玉
2013-07-23 · 超过11用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:22.2万
展开全部
$(document).ready(function(){
//用户名失去焦点
$('#name').blur(function(){
goinName();
}
)
}

);
//验证用户名
function goinName(){
$('#name').css('border','1px solid green');
$('#nameError').html("");
}
function outName(){
var name=$('#name').val(); //获得用户名
var tager=/^[a-z,A-z][a-z,A-Z,0-9]{1,23}$/; //处理乱码
if(!tager.test(name)){
$('#name').css('border','1px solid red');
$('#nameError').html("用户名不合法");
$('#nameError').css('color','red');
i=1;

}

else{
$.ajax({
type: "POST",
url: "checkNameuser.action",
data: "user.vuUserName='"+name,
success: function(date){
date=date.replace(/^\s+|\s+$/g,"");
if(date=="true"){
$('#nameError').html("用户名可用");
i=0;
}
else{
$('#nameError').html("用户名已被占用");
$('#nameError').css('color','red');
i=1;
}
}
});
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式