1. ホーム
  2. javascript

[解決済み] フォームを動的に作成し、送信する

2023-05-04 13:15:58

質問

jQueryで、その場でフォームを作成し、送信する方法はありますか?

以下のようなものです。

<html>
    <head>
    <title> Title Text Goes Here </title>
    <script src="http://code.jquery.com/jquery-1.7.js"></script>
    <script>
        $(document).ready(function(){alert('hi')});
        $('<form/>').attr('action','form2.html').submit();
    </script>
    </head>
    <body>

        Content Area

    </body>
    </html>

これはうまくいくはずなのか、それとも別の方法があるのでしょうか?

どのように解決するのですか?

あなたのコードには2つの間違いがありました。1つ目は、あなたが $(document).ready(); を含むが、要素を作成している jQuery オブジェクトをそれでラップしていないことです。

2つ目はあなたが使っていた方法です。 jQueryはセレクタ(または通常セレクタを置く場所)を作りたい要素に置き換えると、どんな要素でも作ってくれるのです。そして、それをbodyに追記して送信するだけです。

$(document).ready(function(){
    $('<form action="form2.html"></form>').appendTo('body').submit();
});

ここで のコードが動作しているところです。この例では、form 要素を追加することを証明するために、自動投稿を行いません。

これは を自動投稿するコードです。これはうまく動作します。Jsfiddleが404ページを表示するのは、明らかにサーバに "form2.html" が存在しないためです。