【问题标题】:Error with ajax formsajax 表单错误
【发布时间】:2018-06-07 14:59:37
【问题描述】:

我有 2 个表单和 ajax 脚本供他们使用。

jQuery("#mod-expert").submit(function () {
            var formNm = jQuery('#mod-expert');
            $.ajax({
                type: "POST",
                url: '/notify',
                data: formNm.serialize(),
                success: function (data) {
                    // Вывод текста результата отправки
                    jQuery(".message").removeClass("hidden");
                    jQuery(".message-text").html(data);
                    jQuery(".overlay").removeClass("hidden");
                },
                error: function (jqXHR, text, error) {
                    // Вывод текста ошибки отправки
                    jQuery(".message").removeClass("hidden");
                    jQuery(".message-text").html(error);
                    jQuery(".overlay").removeClass("hidden");
                }
            });
            return false;
            });
<div id="mod-order" class="form-modal">
      <div class="head-modal quest-head">ask question</div>
      <form id="mod-expert">
        <input type='hidden' name="header" value="quest <%= @expert.name %>">
        <div class="modal-fields">
          <div class="row">
            ....some inputs
          </div>
          <input type="hidden" name="info" id="info"/>
          <input type="hidden" name="field"/>
          <div class="modal-footer">
            <input class="btn-send" type="submit" value="Отправить">
            <button class="btn-close">Отмена</button>
          </div>
        </div>
      </form>
    </div>

    <div id="mod-expert-block" class="form-modal">
      <div class="head-modal quest-head">Стать экспертом</div>
      <form id="mod-expert">
        <input type='hidden' name="header" value="Хочу стать экспертом">
        <div class="modal-fields">
          <div class="row">
            ...some inputs
          </div>
          <input type="hidden" name="info" id="info"/>
          <div class="modal-footer">
            <input class="btn-send" type="submit" value="Отправить">
            <button class="btn-close">Отмена</button>
          </div>
        </div>
      </form>
    </div>
但是当我以第一种形式按下提交时,发送了 GET 查询。当我们发送第二种形式时,它会发送空参数,无论我们的输入如何。 虽然在另一个页面上的类似表格可以正确发送参数。

【问题讨论】:

  • 您使用的是哪个版本的 jQuery? type 属性仅在 1.9 中添加。第二种形式也没有事件处理程序,因此将以标准方式提交。它也没有action 属性,因此存在问题。
  • 这是一种奇怪的做事方式。你是手工制作那个表格吗?为什么不使用带有remote: true 的表单助手并使用您的JS 来响应ajax:success 事件?
  • @RoryMcCrossan 版本。 3.1.1。根页面上完全相同的表单可以正常发送而不会出现问题。 _jvillian 稍后再做

标签: javascript jquery html ruby-on-rails


【解决方案1】:

您的两个表单具有相同的id 值。这就是为什么您在提交表单时会收到奇怪的值。

正如 Rory 在他的评论中提到的,确认您的 jquery 版本实际上接受了type 参数。

【讨论】:

    猜你喜欢
    • 2013-01-29
    • 1970-01-01
    • 2013-03-12
    • 2014-12-22
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多