【问题标题】:jQuery form serialize - empty stringjQuery表单序列化 - 空字符串
【发布时间】:2010-04-07 09:43:03
【问题描述】:

我的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。

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    您必须为 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&amp;name2=value2 的字符串。没有名称就无法创建这样的字符串。

    请注意,nameid 不同。如果您以“正常”方式使用它,您的表单也将不起作用。 每个表单域都需要一个名称。

    【讨论】:

    • 表单序列化是否需要 id?
    • 让我建议在这里也包括 Madbreaks 的答案。
    • 我有一个名字,但是当序列化我的视图是一个集合时我仍然有空字符串,所以名称例如是 [0].Unit, [0].Currency
    • 下面的答案对我有帮助...确保您的输入未被禁用!
    • ...我嵌套了两个表单标签...试图序列化内部表单并得到一个空字符串!。从来没有嵌套的 HTML 表单标签。
    【解决方案2】:

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

    【讨论】:

    • 这是一个讨厌的。想要在我发送邮件 ajax 样式时禁用这些字段,并在 之前 序列化表单...
    • 天哪,这是一个让我发疯的问题。 +1 人,有什么方法可以让它在禁用元素上工作?
    • @Noitidart 您可以编写自己的serialize jQuery 扩展,它会遍历输入并包括禁用的输入。但据我所知,没有办法做到这一点,使用开箱即用的 jQuery。
    • 不包含禁用元素是有意义的,因为禁用元素不应包含用户输入。
    • @JennyO'Reilly 当然,但不包含用户输入并不意味着“没有价值”。
    【解决方案3】:

    输入中没有nameattribute...这可能是序列化的问题。

    <input id="input1" type="text" value="2" name="input1" />
    

    【讨论】:

    • 男人。你真是个救命恩人!!谢谢。
    【解决方案4】:

    还要确保页面上没有 2 个具有相同 id 的元素。

    【讨论】:

    • 这是评论,不是问题的答案。以后请使用 cmets。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多