Javascript 使用jquery验证插件(servlet和jsp)检查用户名可用性
我使用jquery验证插件验证我的注册表。但是,当我试图检查数据库中是否有用户名时,它不起作用。谁能帮我看一下我的代码,让我知道我做错了什么?它总是显示用户已经存在,即使用户名不在数据库中 我已经试过了 及 但它仍然不起作用 我的注册jquery函数:Javascript 使用jquery验证插件(servlet和jsp)检查用户名可用性,javascript,jquery,jsp,jquery-validate,Javascript,Jquery,Jsp,Jquery Validate,我使用jquery验证插件验证我的注册表。但是,当我试图检查数据库中是否有用户名时,它不起作用。谁能帮我看一下我的代码,让我知道我做错了什么?它总是显示用户已经存在,即使用户名不在数据库中 我已经试过了 及 但它仍然不起作用 我的注册jquery函数: $().ready(function() { $.validator.addMethod('uniqueUsername', function(value) { $.ajax({
$().ready(function() {
$.validator.addMethod('uniqueUsername', function(value) {
$.ajax({
url: 'http://localhost:8080/TBS-war/RegisterServlet.java',
type: 'POST',
async: false,
contentType: 'application/json',
dataType: 'json'
});
});
//Validate signup form on keyup and submit
$("#registrationForm").validate({
// Set rules
rules: {
username: {
required: true,
uniqueUsername: true
/*remote: {
url: "http://localhost:8080/TBS-war/RegisterServlet.java",
type: "post",
contentType: "application/json",
data: {
'username': $('#username').val()
}
}*/
},
password: {
required: true
},
confirmPassword: {
required: true,
equalTo: "#password"
},
contact: {
required: true
},
email: {
required: true,
email: true
},
address: {
required: true
}},
// Set messages
messages: {
username: {
required: "* This field is required",
uniqueUsername: "* User already exist"
//remote: "* User already exist"
},
password: {
required: "* This field is required"
},
confirmPassword: {
required: "* This field is required",
equalTo: "* Please enter the same password as above"
},
contact: {
required: "* This field is required"
},
email: {
required: "* This field is required",
email: "* Please enter a valid email"
},
address: {
required: "* This field is required"
}},
我的servlet文件:
@EJB
private TBSManagerBeanRemote tBSManagerBean;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/json");
PrintWriter out = response.getWriter();
JSONObject json = new JSONObject();
String username = request.getParameter("username");
if (tBSManagerBean.userExist(username)) {
out.print("{\"valid\" : false }");
json.put("valid", false);
System.out.println("false");
}
else {
out.print("{\"valid\" : true }");
json.put("valid", true);
System.out.println("true");
}
}
使用
.addMethod()
方法时,必须返回true
或false
,具体取决于您是否希望通过验证。您的自定义方法不返回任何内容。参见示例:但是,最合适的方法是通过remote
方法。而且您不需要数据
选项,因为字段的值已经发送。请参阅示例:我尝试了远程方法,但在使用远程方法时,验证不起作用,我可以知道如何比较jquery中servlet返回的值吗?我试图在网上找到它,但不太明白它是怎么做到的