jQuery表单序列化-空字符串

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (80)

我的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" />

当我触发Click事件时,formData是空的。我使用的是jQuery1.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。如果你以“正常”的方式使用它,你的表单也将无法工作。每个表单字段都需要一个名称。

用户回答回答于

虽然它不适用于这个特定的例子,但如果一个或多个表单输入被禁用,则会发生相同的行为。这些输入不会显示在序列化的字符串中。在我的情况下,所有表单输入都有值,但被禁用,导致返回一个空字符串。

扫码关注云+社区

领取腾讯云代金券