I an using jquery validator plugin to validate my registration form. However, when I tried to check if an username is in the database, it does not work. Can anyone help take a look at my codes and let me know what I did wrong? It always shows user already exist even when the username is not in database.
I have tried the methods from
jQuery Validate remote method usage to check if username already exists and JQuery Remote Validation not displaying Error
but it still doesn't work.
My registration jquery function:
$().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"
}},
My servlet file:
@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");
}
}