您的位置:首页 > 其它

ajax实现用户名存在校验

2011-11-29 15:03 253 查看
ajax方式实现:用户名在数据库中的存在校验,网上非常多了
1、可以用javaScript调用action
if(window.ActiveXObject)
{
xmlHttpd = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttpd = new XMLHttpRequest();
}

uri = encodeURI(uri + "?" + key:value);

xmlHttpd.open("post",uri,false);

xmlHttpd.onreadystatechange = function()
{
if(xmlHttpd.readyState==4){
if(xmlHttpd.status==200){
//ajax调用成功后的操作
var rt = xmlHttpd.responseText.replace(/\s/ig,'');
***********
}
}
}

xmlHttpd.send(null);
}
注意事项:
1、后台如果是strtus2的话,key要在action中注入,或者采用标准写法:实体类.属性。struts2会使用拦截器构造实体类,并注入action
2、如果action的编码是utf-8,页面编码是gbk,那么参数在action中是乱码,需进行编码转换
3、返回参数也是一样,如果页面和action的编码不一致的话,response要设置编码setCharacterEncoding("GBK"),否则回传中文会出现乱码

2.jquery实现
$(function() {
$("#rolename").bind("blur", function(){
var rolename=$.trim($("#rolename").val());
if (rolename.length > 0)
{
$.get("validateRole.action",
$("#newrole").serialize(), //序列化表单数据
callback,"html");
}
})
})
//接收服务器返回的数值,将服务器返回的数据动态的显示在页面上
function callback(data){
var rt = data.replace(/\s/ig,'');
if (rt == 2){
$("#showResult").html("角色名已存在");
$("#rolename").focus();
} else if (rt == 3){
$("#showResult").html("角色验证失败请联系管理员");
} else if (rt == 1){
$("#showResult").text("*格式:ROLE_");
}
}

jquery的serialize会自动构造key:value参数,注意事项同js实现

2.服务器端使用HttpServletResponse.getWriter获得PrintWriter对象,回写返回信息
也可以使用dwr调用,将整个action状态作为josn返回
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: