2015-04-23 153 views
2

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

**编辑:**作为@Pointy在评论中指出:

从输入字段的 “Enter” 键可引起提交;这些规则有些复杂。通常它与多少个输入字段有关(比如,只有一个或多个)。

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

+0

这是预期的行为。如果与该按钮的交互是造成表单提交的原因,则提交按钮仅包含在POST(或GET)中。 – Pointy

+0

'有没有办法在提交的字段中包含按钮?'正如您所说的,您可以触发点击。 – TheFrozenOne

+0

对,触发“点击”,或者只是添加参数名称和值。 – Pointy

回答

0

你可以做这样的事情: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)); 
}); 
+0

你还没有定义'name'变量,但它显示为“result”:https://jsfiddle.net/y10vcyk5/ :) – undefined

+0

啊你是对的。小错误!我已经更新了我的答案。这对你有用吗? – Stuiterbal

+0

尽管这显示了一种生成包含提交按钮的查询字符串的方法,但它不会回答为什么在使用javascript提交表单时不包括它。 – undefined