【问题标题】:jquery don't submit formjquery不提交表单
【发布时间】:2014-05-26 16:13:29
【问题描述】:

您好,我正在尝试在提交之前使用 jquery 验证表单。验证工作正常,但从不提交。

有形式:

<form class="form-signin panel-body" role="form" action="addUser" method="post" id="register">
                    <h2 class="form-signin-heading">Sign Up</h2>

                    <div id="na" class="form-group">
                        <input type="text" id="name" name="name" class="form-control" placeholder="Name" required>
                    </div>

                    <div id="su" class="form-group">
                        <input type="text" id="surname" name="surname" class="form-control" placeholder="Surname" required>
                    </div>

                    <div id="user" class="form-group">
                        <input type="text" id="username" name="username" class="form-control" value="<%= request.getParameter("username1") %>" placeholder="Username" required>
                    </div>

                    <div id="mail" class="form-group">
                        <input type="email" id="email" name="email" class="form-control warning" value="<%= request.getParameter("email1") %>" placeholder="Email address" required>
                    </div>

                    <div id="pa" class="form-group">
                        <input type="password" id="password" name="password" class="form-control" value="<%= request.getParameter("password1") %>" placeholder="Password" required> 
                    </div>

                        <select class="form-control" id="year" name="year">
                            <option value="">Year</option>
                        </select>
                        <select class="form-control" id="month" name="month">
                            <option value="">Month</option>
                        </select>
                        <select class="form-control" id="day" name="day">
                            <option value="">Day</option>
                        </select>


                    <div class="row">
                        <span>&nbsp;</span>
                    </div>
                    <label>
                        <select class="form-control" id="sex" name="sex">
                            <option value="Male">Male</option>
                            <option value="Female">Female</option>
                        </select>
                    </label>
                    <label>
                        By clicking Sign up, you are agree to our<a data-toggle="modal" href="#terms"> Terms and
                        Conditions</a> and have read our usage policy data, including ouruse of 
                        <a data-toggle="modal" href="#cookies">cookies</a>. 

                    </label>
                    <button id="send" class="btn btn-lg btn-primary btn-block" >Sign in</button>
                </form>

主要是我想拒绝重复的用户名或电子邮件地址。这是我的 jquery 脚本:

$(document).ready(function() {
        $("#register").submit(function(event){
    //  $("#register").click(function(){    
            var $username = $("#username").val();
            var $mail = $("#email").val();

        // Evita que si alguna comprovacio retorna false s'envi el formulari
        event.preventDefault();

        // Funcio que valida que el nom no estigui en blanc
        if($("#name").val().trim() == ""){
            $("#na").addClass( "has-error");
            return false;
        }

        // Funcio que valida que el cognom no estigui en blanc
        if($("#surname").val().trim() == ""){
            $("#su").addClass( "has-error");
            return false;
        }

        // Funcio ajax per validar que el nom d'usuari no està en ús
        $.ajax({
            url: "/projCreditV1/rwsc/as/check-value/user_name/" + $username,
            success: function(data){
                // Si retorna TRUE vol dir que el nom d'usuari es valid perque no està en ús
                if(data == "true"){
                    $("#mail").removeClass("has-error");
                    return true;
                }
                else{
                    $("#user").addClass("has-error");
                    return false;
                }
            }
        });

        // Funcio ajax per validar que el mail no està en ús
        $.ajax({
            url: "/projCreditV1/rwsc/as/check-value/mail/" + $mail,
            success: function(data){
                // Si retorna TRUE vol dir que el mail es valid perque no està en ús
                if(data == "true"){
                    $("#mail").removeClass("has-error");
                    return true;
                }
                else{
                    $("#mail").addClass("has-error");
                    return false;
                }
            }
        });

        // Funcio que valida que la contrasenya no estigui en blanc
        if($("#password").val().trim() == ""){
            $("#pa").addClass( "has-error");
            return false;
        }

        });

    });

当某些字段不符合要求时返回false。我认为如果整个表单不返回 false,应该提交..

谢谢

【问题讨论】:

  • 如果您在提问之前先搜索一下 SO,您可以轻松获得答案。

标签: javascript jquery html forms


【解决方案1】:

请删除event.preventDefault();

如果您使用该代码,它将永远不会执行表单。

【讨论】:

    【解决方案2】:

    提交未完成的原因是:
    event.preventDefault();线。返回不适用于异步请求。因为它不会将值返回给事件。

    解决此问题的方法是:

    1. 制作普通按钮而不是提交按钮
    2. 让 jquery 做 提交。

    【讨论】:

      猜你喜欢
      • 2011-03-08
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多