【问题标题】:Form submits twice using Foundation Abide表单使用 Foundation Abide 提交两次
【发布时间】:2015-03-01 15:11:58
【问题描述】:

我正在运行基于 Foundation 的 Abide 功能在某种形式上是否有效的脚本。当它由于某种原因有效时,表单会提交两次?为什么?

我对两个单独的字段有两个单独的 ajax 调用,因为它们都需要检查唯一性。如果它们都是唯一的,则表单需要提交一切都按预期进行,但是表单会被提交两次。

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

这是我的代码:

$("#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();

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

<fieldset>
   <legend>Form Actions</legend>
   <input type="submit" value="Create Client" name="MyClientSubmit" class="button small success pull-right">
</fieldset>

【问题讨论】:

  • 提交按钮的代码是什么?
  • 检查更新的问题。

标签: javascript php jquery ajax forms


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-06-06
      • 2018-10-28
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 2013-03-27
      • 2014-11-03
      • 2015-04-04
      • 2017-08-29
      相关资源
      最近更新 更多