jQueryforms序列化 – 空string
我的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是空的。 我正在使用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()
获取表单字段的名称和值,并创build一个string,如name1=value1&name2=value2
。 没有名字就不能创build这样的string。
请注意, name
与id
不同。 如果你以“正常”的方式使用它,你的表单也将无法工作。 每个表单字段都需要一个名称。
虽然它不适用于这个特定的例子,但如果一个或多个表单input被禁用,则会发生相同的行为。 这些input不会显示在序列化的string中。 在我的情况下,所有表单input都有值,但被禁用,导致返回一个空string。
在input中没有name
属性…这可能是序列化的问题。
<input id="input1" type="text" value="2" name="input1" />
同时确保页面上没有2个具有相同ID的元素。