jquery bootstrapValidator中的远程验证程序

jquery bootstrapValidator中的远程验证程序,jquery,jquery-validate,twitter-bootstrap-3,Jquery,Jquery Validate,Twitter Bootstrap 3,远程验证不起作用。它始终显示为用户名无效。我是这个jquery验证的新手。因此,任何人都可以告诉我错误是什么 username: { message: 'The username is not valid', validators: { notEmpty: { message: 'T

远程验证不起作用。它始终显示为用户名无效。我是这个jquery验证的新手。因此,任何人都可以告诉我错误是什么

username: {
                        message: 'The username is not valid',
                        validators: {
                            notEmpty: {
                                message: 'The username is required and cannot be empty'
                            },
                            stringLength: {
                                min: 6,
                                max: 30,
                                message: 'The username must be more than 6 and less than 30 characters long'
                            },
                            regexp: {
                                regexp: /^[a-zA-Z0-9_\.]+$/,
                                message: 'The username can only consist of alphabetical, number, dot and underscore'
                            },
                            remote: {
                                url: 'remote.jsp',
                                type: "post",
                                async: false,
                                data:
                                        {
                                            username: function(validator)
                                            {
                                                return $('#defaultForm :input[name="username"]').val();

                                            }
                                        },
                                message: 'The username is not available',
                            },
在后端,我使用JSP,代码是:

    ResultSet rs;
    Boolean flag = true;

    String username = request.getParameter("username");
    rs = st.executeQuery("select * from members where user_name = '" + username + "'");
    if (rs.next()) {
        flag = false;
        out.print("false");    //already exist  

    } else {
        flag = true;
        out.print("true");   // not exist 
    }
使用servlet

username: {
            message: 'The username is not valid',
            validators: {
                notEmpty: {},
                stringLength: {
                    min: 6,
                    max: 20
                },
                regexp: {
                    regexp: /^[a-zA-Z0-9_\.]+$/
                },

                remote: {
                url: './CheckUsernameServlet',
                type: 'POST',
                delay: 2000  

                }

            }
        },
在servlet代码中

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    JSONObject json = new JSONObject();
    PrintWriter out=response.getWriter();
    response.setContentType("application/json");
    String email=request.getParameter("username");
    if(userDAO.validateEmail(email)){

        try {
            json.put("valid",true);

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    else {

        try {
            json.put("valid",false);
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    out.print(json);
}
更改代码 写上面的代码

 username: {
      message: 'The username is not valid',
      validators: {
                notEmpty: {},
                stringLength: {
                min: 6,
                max: 20
            },
                regexp: {
                        regexp: /^[a-zA-Z0-9_\.]+$/
            },

                remote: {
                url: './CheckUsernameServlet',
                type: 'POST',
                delay: 2000                
             }
         }
  },

1年后回答

我所做的只是将返回的json更改为一个有效的json数据。因为上面的答案是正确的,但它没有返回有效的json数据

    public class RegistrationEmailCheck extends HttpServlet {
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("application/json");

  PrintWriter out = response.getWriter();
JSONObject json = new JSONObject();
String availEmail = request.getParameter("email");
System.out.println(availEmail);
String SQL = "SELECT email FROM login WHERE email='" + availEmail + "'";
Connection con = DBInfo.getConn();
Statement st;
ResultSet rs;

try {
    st = con.createStatement();
    rs = st.executeQuery(SQL);


    if (rs.next()) {

        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");


    }


} catch (Exception ex) {
    ex.printStackTrace();
} finally {

    out.close();
     }



   }


 }
现在一切都很好

    public class RegistrationEmailCheck extends HttpServlet {
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("application/json");

  PrintWriter out = response.getWriter();
JSONObject json = new JSONObject();
String availEmail = request.getParameter("email");
System.out.println(availEmail);
String SQL = "SELECT email FROM login WHERE email='" + availEmail + "'";
Connection con = DBInfo.getConn();
Statement st;
ResultSet rs;

try {
    st = con.createStatement();
    rs = st.executeQuery(SQL);


    if (rs.next()) {

        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");


    }


} catch (Exception ex) {
    ex.printStackTrace();
} finally {

    out.close();
     }



   }


 }