在form1.submit()中提交iframed form2?

时间:2012-07-05 21:22:43

标签: jquery forms submit

我正在网站上工作但我无权访问html,但我有一个部分可以自定义javascript。

我正在尝试从现有表单中获取一些字段,并在用户单击原始表单上的“保存”时将它们发送到不同域上的外部数据库。

HTML我无法改变:

<form id="settings_form" action="thisdomain.com/savesettings" method="post" enctype="multipart/form-data">
<input type="text" name="fullName" id="fullName">
...
<input type="submit" class="button" value="Save">
</form>

这是我的javascript:

$("#settings_form").submit(function(){
  var fd = $("input#fullname").val();           

  var iframe = document.createElement('iframe');
  var uniqueString = "addform";
  document.body.appendChild(iframe);
  iframe.style.display = "none";
  iframe.contentWindow.name = uniqueString;    

  var form = document.createElement("form");
  form.target = uniqueString;
  form.action = "http://externaldomain.com/add.php";
  form.method = "POST";

  var inputn = document.createElement("input");
  inputn.type = "hidden";
  inputn.name = "n";
  inputn.value = fd;
  form.appendChild(inputn);

  document.body.appendChild(form);
  form.submit();      
});

使用此代码,在发送#settings_form并刷新页面之前,不会发送我的iframed表单。

如果我添加“preventDefault();”或“返回假”;到submit()函数,它正确地发布到外部数据库,但后来我无法提交原始表单。有没有办法只需用户点击“保存”按钮就可以将两个表单发送到各自的位置?

0 个答案:

没有答案