1

私はサイトで作業していて、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();」を追加すると または「falseを返します。」submit()関数に、外部データベースに正しく投稿されますが、元のフォームを送信できません。[保存]ボタンを1回クリックするだけで、両方のフォームをそれぞれの場所に送信する方法はありますか?

4

0 に答える 0