【问题标题】:jQuery Forms - Ajax and normal submit the same formjQuery Forms - Ajax 和普通提交相同的表单
【发布时间】:2009-06-11 14:22:04
【问题描述】:

我的一个页面中有一个确认步骤。

期望的行动:

  • 用户单击“提交”并发出 AJAX 请求,该请求执行适当的操作并返回确认对话框

  • 用户“确认”,然后使用标准帖子提交表单。

所以对于第一部分,我可以使用 jQuery 表单插件:

$('form').ajaxForm(...options...);

对于第二部分,我想再次提交表单,但不是 ajax。基本上我想这样做:

$('form').submit();

并让它做一个实际的浏览器帖子。问题是 $('form').submit() 只是触发了ajax提交。

有没有办法将表单用于这两个目的?

【问题讨论】:

  • $('forms-submit-button').click() ..第二次提交有效吗?
  • 是的,这行得通……很有趣,但行得通,我很高兴。

标签: javascript jquery ajax forms jquery-forms-plugin


【解决方案1】:
$('forms-submit-button').click()

..第二次提交有效吗?

:) :)

【讨论】:

    【解决方案2】:

    您不能在 ajax 发布结果后取消注册提交事件处理程序吗?顺便说一句,为什么您需要两次发布相同的数据?如果 Ajax 帖子和普通帖子之间的数据没有变化,为什么还需要普通帖子?

    【讨论】:

    • 两个要求:1) 需要一个确认步骤 2) 我必须使用现有的数据库所以我在两个请求中做 99% 的相同工作,但只有“真实”请求仍然存在它到数据库。理想情况下,我会保存第一个请求中的工作,第二个请求只需要引用保存的工作,但是 a)我不想依赖 session 和 b)我不能创建一个新表来持久化请求。
    【解决方案3】:

    您可以尝试更改表单中的值(将一些隐藏值设置为 1),执行另一个 ajax 请求,最后执行重定向。它不一样,但它应该工作。 请注意,虽然两次提交相同的数据很奇怪..

    【讨论】:

    • 这是一个确认步骤...除了将其保存到数据库之外,它会执行所有操作,因此它的数据完全相同。
    【解决方案4】:

    由 Surya 作为评论回答(如果您再次检查此问题,请发布答案以便我标记它!)


    $('forms-submit-button').click() ..第二次提交有效吗?

    【讨论】:

      【解决方案5】:
      表单 onsubmit='ajaxCheck();' ...
      /形式 脚本 var ajaxCheck = 函数() { //做检查 返回确认(); // 如果 ok 表单提交正常 / 如果取消表单没有提交 } /脚本

      或带有标志的东西:

      变量标志=真; var firstCheck = 函数() { 如果(标志) { //执行将触发事件的ajax调用, // 我们称之为 onData $.post(url,{param1:val1,...,paramN:valN},onData); 返回假; } 返回真; } var onData = 函数(数据) { flag = !confirm(...); //如果用户单击确定并尝试重新提交表单 //这次就过去了 }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-13
        • 1970-01-01
        • 2011-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-22
        相关资源
        最近更新 更多