1. ホーム
  2. jquery

[解決済み] jQuery フォームシリアライズ - 空文字列

2022-10-20 10:20:45

質問

私のhtmlです。

 <script type="text/javascript">

    $(function() {

        $("#bt1").click(function() {

            var f = $("#form1");
            var formData = f.serialize();

            alert(formData);
        });

    }); 
</script> 

 <div id="div1">
      <form id="form1" action="/Home/Test1" method="post" name="down">
        <div id="div2">
            <input id="input1" type="text" value="2" />
        </div>    
      </form>
  </div>

 <input type="submit" id="bt1" />

クリックイベントを起動すると、formDataが空になってしまいます。jQuery 1.4.2を使っています。

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

この場合 input 要素に名前を付けなければなりません。例.

<form id="form1" action="/Home/Test1" method="post" name="down">
    <div id="div2">
        <input id="input1" type="text" value="2" name="foo"/>
    </div>    
</form>

と入力すると、アラートボックスに foo=2 .

.serialize() は、フォームフィールドの名前と値を受け取り、次のような文字列を作成します。 name1=value1&name2=value2 . 名前がなければ、このような文字列を作ることはできません。

なお name とは異なるものです。 id . あなたのフォームも、"normal" の方法で使用した場合は動作しなかったことでしょう。 すべてのフォームフィールドには名前が必要です。