表格使用Foundation Abide提交两次

时间:2015-03-01 15:11:58

标签: javascript php jquery ajax forms

我正在运行一个脚本,基于Foundation的Abide功能是否在某种形式上有效。如果表格因某种原因有效提交两次?为什么呢?

我有两个单独的ajax调用两个单独的字段,因为它们都需要检查唯一性。如果它们都是唯一的,那么表格就需要提交一切尽管如此,表格会被提交两次。

我尝试了.submit()的两个版本,其中第一个版本根本不允许表单提交:$("#ClientCreateForm").submit();所以我找到了上一个问题并将其更改为:{{ 1}}现在它只提交了两次。

这是我的代码:

$("#ClientCreateForm")[0].submit();

提交表单的代码是HTML格式,如下所示:

$("#ClientCreateForm").on('valid.fndtn.abide', function (event) {

    var number = $("input[name='number']").val();
    var dataString = 'number='+number;
    $.ajax({
        type: "POST",
        url: "/bamboo/panda/actions/check_number/",
        data: dataString,
        success: function(data) {
            var data = data.trim();
            if(data == '1')
            {
                var email = $("input[name='email']").val();
                var EdataString = 'email='+email;
                $.ajax({
                    type: "POST",
                    url: "/bamboo/panda/actions/check_email/",
                    data: EdataString,
                    success: function(Edata) {
                        var Edata = Edata.trim();
                        if(Edata == '1')
                        {
                            $("#ClientCreateForm")[0].submit();
                        }
                        else
                        {
                            $(".email-field").attr('class', 'number-field small-3 columns error');
                            $(".email-field .error").html('Must be a unique email');
                            return false;
                        }
                    }
                });
            }
            else
            {
                $(".number-field").attr('class', 'number-field small-3 columns error');
                $(".number-field .error").html('Must be a unique number');
                return false;
            }
        }
    });
    event.preventDefault();

2 个答案:

答案 0 :(得分:1)

Abide in Foundation是一个明显的问题。

$("#ClientCreateForm).on('valid.fndtn.abide', function (event) {更改为:$("#ClientCreateForm).on('valid', function (event) {可解决此问题,但已弃用valid

此解决方案可在此处找到:https://github.com/zurb/foundation/issues/5392

答案 1 :(得分:0)

运行Foundation 5.5.1时,我遇到了同样的问题。

jQuery('form#reg_form').on('valid.fndtn.abide', function() {

但是,在今天升级到5.5.2版之后,它似乎已被清除。我碰巧在调用ajax请求,Firebug现在在Net面板中显示1个请求。