我有一个带有选中复选框的表单。它的序列化没有返回那些选中的复选框。这是我用来执行序列化的jQuery代码。
$('form.subscribe').serialize()
上面的序列化返回
email=
这是标记:
<form class="subscribe">
<div class="body">
<div class="email input">
<input name="email" placeholder="your email address" />
</div>
<div class="expandable">
<div class="fieldLabel emphasis">I am a:</div>
<div class="checkbox">
<input id="isDeveloper" type="checkbox" />
<label for="isDeveloper">Developler<label>
</div>
<div class="checkbox">
<input id="isDesigner" type="checkbox" />
<label for="isDesigner">Designer</label>
</div>
<div class="checkbox">
<input id="isHR" type="checkbox" />
<label for="isHR">Talent Coordinator</label>
</div>
<div class="checkbox">
<input id="isPM" type="checkbox" />
<label for="isPM">Project Manager</label>
</div>
<div class="fieldLabel emphasis">Email me about:</div>
<div class="checkbox">
<input id="wantsCollab" type="checkbox" checked="checked"/>
<label for="wantsCollab">Collaboration</label>
</div>
<div class="checkbox">
<input id="wantsBlog" type="checkbox" checked="checked" />
<label for "wantsBlog">Blog Posts</label>
</div>
</div>
<div class="button">
<input class="emphasis" type="submit" value="subscribe">
</div>
</div>
</form>
如您所见,有1个文本输入和6个复选框。其中2个复选框已选中,但序列化中仅返回文本输入。
答案 0 :(得分:4)
您的复选框没有名称属性,并且您的电子邮件输入未指定类型。此外,您的表单没有指定任何操作或编码,您可能希望将其用于优雅降级。
答案 1 :(得分:2)
注意:只有“成功控件”被序列化为字符串。没有 由于表单未提交,因此提交按钮值已序列化 使用按钮。对于要包含在表单元素中的值 序列化字符串,元素必须具有名称属性。值 来自复选框和单选按钮(输入类型为“radio”或 “复选框”)仅在选中时才包括在内。来自文件的数据 选择元素未序列化。