【问题标题】:How do I include and submit a form using Impromptu dialog如何使用即兴对话框包含和提交表单
【发布时间】:2025-11-21 17:25:03
【问题描述】:

通过 jquery impromptu 包含表单并将其提交到 PHP 页面的正确方法是什么。

目前,我正在做:

<script>
  var someform = '<form method="post" action="my.php" id="myform">
  Enter your name<br />
  <input name="name" /><br />
  What's your favorite color?<br />
  <select name="color">
    <option>red></option>
    <option>blue</option>
  </select><br />
  Tell us more about that<br />
  <textarea name="comments"></textarea>
  <input type="hidden" name="submit" />
  </form>';

  function callback_form(v,m,f){

    if(v == 1)
    {
  $('#myform').submit();
      location.reload();
    }
    else
    {
      $.prompt.close()
    }
  }
</script>

在html中,当我调用它时,表单显示并刷新页面,但不提交。

<a href="#" onclick="$.prompt(someform,{ callback: callback_form, buttons: { Cancel: 0, Add: 1 },focus: 1 });">Launch Form</a>

我觉得我犯了一些简单的错误,但我找不到任何人实际使用即兴添加表单标签的例子。我希望有人能指出我正确的方向。谁能帮助我提示用户输入并使用即兴实际提交表单的最佳方法?

【问题讨论】:

    标签: jquery modal-dialog form-submit impromptu


    【解决方案1】:

    也就是说,因为您在提交时正在重新加载页面。如果您提交表单,您的页面将转到“my.php”,因此您不需要“location.reload()”。

    【讨论】:

    • s/do not need/should not have/
    • 如果我删除重新加载行,页面似乎根本无法工作。对话框关闭,但页面的行为不像我单击了提交按钮。我想知道我是否需要一个未显示的按钮,我使用 jquery 来物理“点击”?
    • 更新:如果我将 放入实际表单并单击按钮,则提交正常。所以 $('#myform').submit();操作的行为与实际单击提交按钮的行为不同,而我认为行为是相同的。
    • 我想通了;谢谢您的帮助!显然,我需要将 $.prompt(someform,{ callback: callback_form 更改为 $.prompt(someform,{ submit: callback_form ) )。当我引用提交行为而不是调用函数时,一切正常。跨度>
    【解决方案2】:

    您应该可以像这样通过 ajax 提交表单:

    $.post('my.php',f,function(data,status,xhr){
        //do something here
    });
    

    【讨论】:

    • 好的,您能在上面的表单示例中重新表述一下吗?抱歉,我之前从未使用过 $.post...
    • @user882134,这很好用,虽然 my.php 不存在,但它发布了正确的内容:jsfiddle.net/vPuFe
    【解决方案3】:

    我想通了;感谢您的帮助!

    显然,我需要更改回调以提交

    $.prompt(someform,{ callback: callback_form
    

    $.prompt(someform,{ submit: callback_form)。当我引用提交行为而不是调用函数时,一切正常。

    【讨论】:

      最近更新 更多