【问题标题】:How to add a post parameter to manual form submission?如何在手动表单提交中添加 post 参数?
【发布时间】:2011-10-13 08:56:05
【问题描述】:

经过一些复杂的检查后,我想手动提交表单。因为检查涉及用户交互,所以整个检查过程不是同步进行的。这是场景:

  1. 用户单击按钮(HTML <button id='button-id'> 标记)
  2. 我阻止按钮的默认操作(即表单提交)
  3. 我做了一个复杂的检查。
  4. 在检查过程中的某处,我显示一个对话框并等待用户响应(此处,原始检查函数继续执行并返回)
  5. 我为该对话框提供了一个回调函数,它会在用户关闭它时触发并运行(正面或负面结果)
  6. 现在,我应该提交表单,但原始 HTML <button id='button-id'> 应该作为successful control 发布。换句话说,我应该将按钮标签的name作为发布参数之一添加到服务器。

我使用 jQuery 的 $('#form-id').submit() 方法。如何将<button> 元素的name 添加到HTTP Post 参数?

【问题讨论】:

  • 不是直接调用$('#form-id').submit(),你可以设置一个标志,验证是否结束,然后调用$('#button-id').click(),然后触发$('#form-id').submit()而不是验证。不确定这是否有效,但您可以尝试一下。
  • 是的@FelixKling,这是我们的第一个解决方案。谢谢你的建议。但这只是一个技巧。我们想知道是否可以添加一些东西来发布参数。这似乎是直接的解决方案。 :)
  • 您也可以在表单中插入一个与<button> 同名的隐藏字段(当然,删除或更改按钮的name 属性),然后调用$.submit()

标签: jquery parameters http-post form-submit


【解决方案1】:

您可以在提交之前在表单中附加一个隐藏字段 -

$('<input>').attr({
    type: 'hidden',
    id: 'buttonid',
    name: 'buttonid',
    value: yourbuttonidvar  
}).appendTo('#form-id');

【讨论】:

  • @ipr101,这不是这个问题的答案。但这是一个很好的解决方案;)
【解决方案2】:

为什么不使用按钮类型,而不是使用

<input type="submit" name="commit" id="button_id" ...>

【讨论】:

  • 你没有明白我的意思。控制本身并不重要。重要的是我取消了它的原始行为。但最后,我想将它作为一个成功的控件包含在 HTTP Post 中。
  • 也许不是,但是 - 控件的“控件名称”由其名称属性给出。我认为您试图解决的问题是,使用按钮时,未提交名称,使用输入提交时,它是
猜你喜欢
  • 2023-04-08
  • 2016-05-22
  • 1970-01-01
  • 2010-11-02
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多