よく分からずにちょっとはまってしまいました。
書いてて思ったけど、このご時勢にわざわざページ遷移させる必要があるのか、とか
jsでformを作らないといけない理由は何だ?とか思ったけどどっかで需要もあるでしょう
ということで、たとえば
input id="submit" type="button" value="送信ボタン" />
なんていうのをHTML側に書いて、このボタンを押したら動的にJSでパラメータを作ってsubmitするとします。
JS側で
var frm = document.createElement("form");
var ipt1 = document.createElement("input");
frm.action = "js_submit2.php";
frm.method = "post";
ipt1.name = "val1";
ipt1.value = "111111";
frm.appendChild(ipt1);
frm.submit();
なんていうコードを書いて実行したところ、Chromeさんでは上手くいきました。
ばんざい!おしまい!
としたかったのですが、どうもFirefoxで動いていない模様。
いろいろネットで情報を集めてるうちに
Firefoxはbody要素をきっちり指定してやらないと、formが効かないらしい
ということのようです
ということで、frmをsubmitする前に
document.body.appendChild(frm);
を追加してやります。 frm.appendChild(ipt1);
document.body.appendChild(frm);
frm.submit();
こうすると、Firefoxでもちゃんと動きました。
Chromeが賢いのか、Firefoxがきっちりしてるのか。
ちなみにIEや他のでは見ていません。あしからず。