这是主要形式:
<div>
<form method="post" class="register" id="wiz-config">
<!-- HTML -->
<input type="radio" value="187" name="group-1" id="product-187" class="aselector" >
<input type="radio" value="188" name="group-1" id="product-188" class="aselector" >
<!-- HTML -->
<!-- Other ajax fields -->
</form>
</div>
其他ajax字段通过ajax加载。
问题在于,如果我使用
jQuery( document ).ready(function() {
var str = jQuery( "#wiz-config" ).serialize();
console.log(str);
});
它返回的是&#34;空&#34;。为什么呢?
答案 0 :(得分:2)
您只是忘了放the selector #:
$( "#wiz-config" ).serialize();
答案 1 :(得分:2)
您的jQuery选择错误。您需要#
,因为您尝试按ID进行选择。
$("#wiz-config" ).serialize();
ID选择器(“#id”):选择具有给定ID的单个元素 属性。
或者如果您的页面中只有一个表单,您也可以尝试使用此表单
var _form = $("form");
console.log(_form);
var serializedVersion = _form.serialize();
编辑:根据评论,您没有获得动态添加的表单元素。我能想到的唯一原因是,您可能没有给这些动态添加的表单元素赋予name
属性及其值。 serialize
方法仅序列化具有有效name
属性的元素。
以下应该没有任何问题。
$(function(){
var newItems="<input name='place' type='text' />";
$("#wiz-config").append(newItems);
});
Here是一个工作样本。
答案 2 :(得分:0)
您正在调用元素而不是ID。
$("wiz-config").serialize();
正在寻找一个元素,例如p,div等。
要按ID调用项目,您需要添加前导#:
$("#wiz-config").serialize();