【发布时间】:2011-05-28 15:27:28
【问题描述】:
jQuery 中的 form.serialize() 函数有问题。 当我尝试通过 AJAX 提交序列化表单时,serialize() 只返回一个空字符串。
也许我的 HTML 大纲有问题:
<form id="category-dynamic" class="dynamic">
<fieldset id="inner-fieldset">
<legend id="new-category">
<label for="category-name">Category Name: </label>
<input type="text" name="category-name" value="" />
</legend>
<ul id="category-fields">
<li>
<label>Field #1:</label><br />
<input type="text" name="fields[]" value="" />
</li>
<li>
<label>Field #2:</label><br />
<input type="text" name="fields[]" value="" />
</li>
</ul>
</fieldset>
</form>
在我的 jQuery 函数中,我只是调用:
$.post("processor.php", $('#category-dynamic').serialize(), function(data){
// data handling here...
});
【问题讨论】:
-
你从哪里得到空字符串?你能显示你的 php 代码吗?
-
作为测试,您的代码似乎工作正常:jfcoder.com/test/serialize.php 我所做的只是在processor.php 上
<?php print_r($_POST); ?>。确保并打开控制台。 -
serialize() 肯定不会返回空字符串:jsfiddle.net/fallen888/HFTV6
-
在您的 $.post() .. 之前添加 alert($('#category-dynamic').serialize()) 以向自己证明 serialize() 正在返回数据
-
当然 serialize(9 不返回空字符串,但确实如此,问题出在客户端(Java控制台中的 $('#category-dynamic').serialize() 也返回 "" ) 所以这里不需要 PHP 脚本
标签: jquery html serialization