使用jquery进行表单验证并不起作用

时间:2014-08-06 14:02:21

标签: javascript jquery jsp jquery-validate

我正在尝试编写表单验证。我必须检查数据库中的用户名是否唯一。但它不起作用。 register.jsp我的表单页面和deneme.jsp正在检查用户名是否唯一。这是页面

register.jsp

<html>
<body>

    <form name="form" id="form">
        <input type="text" name="username" id="username"> 
        <input type="submit" name="register" value="Sign up">
    </form>

    <script
        src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script
        src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.1.47/jquery.form-validator.min.js"></script>

    <script type="text/javascript">
        $(document).ready(function() {
            $("#form").validate({
                rules : {
                    username : {
                        remote : {
                            url : "deneme.jsp",
                            async : false,
                            type : "post",
                            data : {
                                username : function() {
                                    return $("#username").val()
                                }
                            }
                        }
                    }
                },
                messages : {
                    username : {
                        remote : "alredy exist"
                    }
                }
            });
        });
    </script>

</body>
</html>

,这里是deneme.jsp

<%@ page import="java.sql.*"%>

<%
    Connection con;
    Statement stm = null;
    ResultSet rs;

    try {
        Class.forName("com.mysql.jdbc.Driver");

        con = DriverManager
                .getConnection("jdbc:mysql://localhost/odevdb", "root",
                        "hawking1887/");
        String username = request.getParameter("username");
        stm = con.createStatement();
        rs = stm.executeQuery("select * from users where username = '"
                + username + "'");
        if (rs.next()) {
            out.print("false"); 

        } else {
            out.print("true"); 
        }
    } catch (SQLException e) {
        out.print(e);

    } catch (ClassNotFoundException e) {
        out.print(e);
    }
%>

1 个答案:

答案 0 :(得分:1)

您使用的是错误的插件或错误的代码格式。

您的脚本包含 jQuery Form Validator plugin (版本2.1.47)。

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.1.47/jquery.form-validator.min.js"></script>

但是,.validate()来电,rules选项,remote方法(和您的代码, )中的语法全部用于 jQuery Validate plugin 当前版本为1.13.0 )。

$("#form").validate({
   rules : {
       username : {
           remote : {
           ....

最简单的解决方法是为您已编写的代码添加正确的插件...

<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.13.0/jquery.validate.min.js"></script>

否则,您需要修复代码以符合您包含的插件。 ( jQuery Form Validator plugin中似乎没有remote方法。