15竹林风 2016-04-08 10:41 采纳率: 33.3%
浏览 1531

js中使用ajax函数做同步请求Servlet连接数据库进行验证

这是一个js表单验证,验证email的部分,我想达到的目的是在输入email信息结束后进行验证,前两个条件直接自身进行验证,效果已经实现了,后面的那个我想用ajax的效果进行同步验证,防止email重复,但是效果一直出不来,不知道是否是ajax函数参数设置有问题什么的,或者eclipse出bug什么的,请问有人帮忙看一下的么?
email输入部分代码:


Email:
id="email" class="input" value="" />



js代码如下:
function validateEmail() {
$("#emailError").css("display", "none");
var bool = true;
var val = $("#email").val();
if(!val) {
$("#emailError").text("Email不能为空!");
$("#emailError").css("display", "");
bool = false;
} else if(!/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(val)) {
$("#emailError").text("错误的Email格式!");
$("#emailError").css("display", "");

bool = false;
} else {
$.ajax({
url:"/goods/UserServlet",
data:{method:"ajaxValidateEmail",email:value},
type:"POST",
dataType:"json",
async:false,
cache:false,
success:function(result){
if(!result){
$("#emailError").text("该邮箱已经被注册了");
$("#emailError").css("display", "");
bool = false;
}
}
});
}
return bool;
}

请求的Servlet的函数如下:
public void ajaxValidateEmail(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String email = request.getParameter("email");
boolean emailPass = userService.ajaxValidateEmail(email);
response.getWriter().print(emailPass);
}

service部分:
public boolean ajaxValidateEmail(String email){
return userDao.ajaxValidateLoginname(email);
}

数据库层代码:
public boolean ajaxValidateEmail(String email){
String sql = "select count(1) from t_user where email=?";
try {
Number number = (Number)queryRunner.query(sql, new ScalarHandler(), email);
return number.intValue() == 0;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}

  • 写回答

1条回答 默认 最新

  • JPF1024 2016-04-08 12:13
    关注
     $.ajax({
    url:"/goods/UserServlet",
    data:{method:"ajaxValidateEmail",email:value},
    type:"POST",
    dataType:"text",//这样改一下
    async:false,
    cache:false,
    success:function(result){
    //打印一下result试试看是什么结果
    console.log(result);//chrome 按f12,看Console选项卡,可以看到结果.
    if(!result){
    $("#emailError").text("该邮箱已经被注册了");
    $("#emailError").css("display", "");
    bool = false;
    }
    }
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler