【问题标题】:Why isn't the submit button included in the post when submitting a form with jquery使用jquery提交表单时,为什么帖子中不包含提交按钮
【发布时间】:2015-04-23 12:33:09
【问题描述】:

当通过单击按钮或按 Enter 提交表单时,提交按钮将包含在已发布的字段中。但是,如果使用 jquery($('#some_form').submit();) 提交表单,则不包括提交按钮。如果在按钮上触发了点击事件,它会包含在已发布的字段中。
这种行为正常吗?有没有办法使用提交方法将按钮包含在提交的字段中?

**编辑:** 正如 @Pointy 在 cmets 中所述:

输入字段中的“Enter”会导致提交;其规则有些复杂。通常它与有多少输入字段有关(例如,只有一个或多个)。

显然不是每次按下输入时都会提交表单,但我找不到任何有关它的信息。有人可以发布一个链接,或者解释这些关于什么触发表单提交以及包含哪些表单字段的规则?

【问题讨论】:

  • 这是预期的行为。如果与该按钮的交互是导致表单提交的原因,则提交按钮仅包含在 POST(或 GET)中。
  • Is there a way to include the button in the submitted fields? 如您所说,您可以触发点击。
  • 对,触发“点击”,或者只是添加参数名称和值。
  • @Pointy "...如果与该按钮的交互是导致表单提交的原因" - 按下回车是否算作与按钮的交互?
  • @undefined 如果按钮具有焦点并按下“Enter”,则会导致“单击”按钮。来自输入字段的“Enter”可以导致提交;其规则有些复杂。通常它与有多少输入字段有关(例如,只有一个或多个)。

标签: javascript jquery forms


【解决方案1】:

你可以这样做:https://jsfiddle.net/6smh74s9/2/

Javascript

$('form').on('submit', function(e) {
    e.preventDefault();

    var data = [];
    $(this).find(':input').each(function () {
        if (this.name) {
            data.push({ name: this.name, value: this.value });
        }
    });

    $('div').html($.param(data));
});

【讨论】:

  • 您还没有定义name 变量,但它显示为“结果”:jsfiddle.net/y10vcyk5 :)
  • 啊,你是对的。小错误!我已经更新了我的答案。这对你有用吗?
  • 虽然这显示了一种生成包含提交按钮的查询字符串的方法,但它没有回答为什么在使用 javascript 提交表单时不包含它。
猜你喜欢
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
相关资源
最近更新 更多