私がやりたいことは、フォームオブジェクトをどこかに保持し、後でサーバーに送信したいということです。フォームにテキスト/ラジオ/チェックボックスなどが含まれている場合は正常に機能しますが、ファイルアップロード用のフィールドがある場合、Internet Explorer では機能しません。
ここに例があります:
<div id="container">
<form id="testForm">
<input type="file" name="photo"/>
</form>
<input type="button" onclick="uploadLater();"/>
</div>
function uploadLater()
{
window.oldForm = document.getElementById('testForm');
document.getElementById('container').innerHTML = "thanks!";
}
後で実行される別の関数は次のようになります (注: FF と Chrome では機能しますが、IE では機能しません。IE は残念ながらファイルを送信しません)。
function doItNow()
{
if(!window.oldForm.parentNode) document.body.append(window.oldForm);
// ... other parameters omitted ...
window.oldForm.submit();
window.oldForm.parentNode.removeChild(window.oldForm);
alert('hurray! data on its way ...');
}
このようなものをIEで動作させるための解決策を知っている人はいますか? ファイルも含み、DOM ツリーの一部ではないフォームを一定の遅延後に送信する (クロス ブラウザー)。
どうも、