javascript - jQuery .validate() 和表单 onsubmit

标签 javascript jquery jquery-validate

所以我有一个带有 onsubmit="SubmitForm()" 的表单还有一个$().validate() 。问题是,当单击“提交”时,.validate() 起作用,但 SubmitForm() 也会运行。我有点困惑,有人可以帮助我吗?

<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.2.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/jquery.validate.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
    $('#eclub').validate({ // initialize the plugin
        rules: {
            FirstName: {
                required: true,
                minlength: 2,
            },
            LastName: {
                required: true,
                minlength: 2
            },
            'Email Address': {
                required: true,
                email: true
            },
            Zip: {
                required: true,
                minlength: 2 
            },
            DOB_Month: {
                required: true,
                minlength: 2, 
            },
            DOB_Day: {
                required: true,
                minlength: 1
            },
            over18: {
                required: true
            }
        }
    });



});

    function autoDMA() {
        var zip_code = $('#zip_code').val();
            $.ajax({
            url: 'get_zipCode.php',
            type: 'POST',
            data: {zip_code:zip_code},
            success:function(data){$('#dma_code').val(data);}
            });

    }

    function SubmitForm()
    {
        if($("#emailDeals").is(':checked')){
            document.forms['eclub'].action='http://cl.exct.net/subscribe.aspx';
            document.forms['eclub'].target='_blank';
            document.forms['eclub'].submit();
        }

        if($("#mobileDeals").is(':checked')){
            document.forms['eclub'].action='/assets/waterfall/waterfall_rest.php';
            document.forms['eclub'].submit();
        }

        return true;
    }

</script>

<div id="" style="width:60%;">
    <br/>
    <!-- <form action="http://cl.exct.net/subscribe.aspx" id="eclub" method="post" onsubmit="return validateForm(this)" style="width:100%;">  -->
    <form method="post" id="eclub" onsubmit="SubmitForm()">
        <input name="thx" value="http://papamurphys.com/Deals/ThankYou" type="hidden">
        <input name="dma" value="" type="hidden" id='dma-set' />
        <input name="dma2" value="" type="hidden" />
        <input name="MID" value="29115" type="hidden" />
        <input name="lid" value="846154" type="hidden" />
        <input name="lid" value="17516793" type="hidden" />
        <input name="SubAction" value="sub_add_update" type="hidden" />
        <input type="hidden" name="status" value="normal" />
        <input name="Birthdate" value="" type="hidden" id="bday"/>

        <div class="clearfix">
            <label for="name"><span class="bold">First Name</span></label><br />
            <input class="required" name="FirstName" type="text" placeholder="" />
        </div>
        <div class="clearfix">
            <label for="name"><span class="bold">Last Name</span></label><br />
            <input class="required" name="LastName" type="text" placeholder="" />
        </div>
        <div class="clearfix">
            <label for="email"><span class="bold">Email</span></label><br />
            <input class="required" name="Email Address" type="text" placeholder="" />
        </div>
        <div class="clearfix">
            <label for="email"><span class="bold">Mobile Number</span></label><br />
            <input class="required" name="MobileNumber" type="text" placeholder="" />
        </div>
        <div class="clearfix">
            <span class="bold">Zip/Postal Code</span><br />
            <input class="required zip" id="zip_code" name="PostalCode" type="text" onkeyup="autoDMA()" placeholder="" maxlength="5" size="5" />
        </div>
        <div class="clearfix">
            <input class="zip" id="dma_code" name="DMACode" type="text" placeholder="" maxlength="5" size="5" style="display:none;" />
        </div>
        <div class="clearfix">
            <span class="bold">Birthday</span><br />
            <input class="month user required" name="DOB_Month" type="text" placeholder="MM" maxlength="2" style="width:48px;" /> 
            <input class="day user required" name="DOB_Day" type="text" placeholder="DD" maxlength="2" style="width:48px;" />
        </div>
        <div class="clearfix">
            <input class="age user" class="required" name="emailDeals" id="emailDeals" type="checkbox"/> Sign me up for email deals
        </div>
        <div class="clearfix">
            <input class="age user" class="required" name="mobileDeals" id="mobileDeals" type="checkbox"/> Sign me up for mobile deals
        </div>
        <div class="clearfix">
            <input class="age user" class="required" name="over18" id="over18" type="checkbox"/> I'm over 18
        </div>
        <input class="join-btn" type="submit" style="float:right;line-height:14px;cursor: pointer" onclick="pageTracker._trackPageview('Forms', 'Submit', 'eClubSignUp')" value="SUBMIT" />

      <!--<input type="button" class="join-btn" value="" onclick="validateForm()" />-->
    </form>
</div>

最佳答案

为什么不在validate()中使用submitHandler回调?

$(".selector").validate({
  submitHandler: function(form) {
   $(form).ajaxSubmit();
}
});

关于javascript - jQuery .validate() 和表单 onsubmit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27931411/

相关文章:

c# - MVC 2 中使用 JQuery 的验证摘要

java - 验证失败时阻止操作

javascript - 避免在 CMS 的所有页面上使用 jQuery 中的全局上下文

javascript - 根据先前生成的父对象生成子元素

jquery - 如何让 Bootstrap 四列网格在第二列上跨越两行?

javascript - 打开菜单时如何垂直展开网页主体

php - 如何使用 jQuery 通过 Ajax 提交表单,然后获取提交到的页面的输出?

javascript - 更改 Google Maps JavaScript API v3 圈外的 map 不透明度

javascript - 为什么点星在替换字符串时会给出两个匹配项?

javascript - 恢复div的css属性