如何使用Impromptu对话框包含和提交表单

时间:2011-08-14 13:06:19

标签: jquery modal-dialog form-submit impromptu

通过jquery即兴包含表单并将表单提交到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>

我觉得我正在制作一些容易犯的错误,但是我找不到任何实际包含使用即兴表格标签的人的例子。我希望有人能指出我正确的方向。任何人都可以帮助我提供用户输入的最佳方法,并使用即兴提交表单吗?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您应该能够通过像这样的ajax提交表单:

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

答案 2 :(得分:1)

我明白了;谢谢你的帮助!

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

$.prompt(someform,{ callback: callback_form

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