我正在尝试使用表单序列化,但令人惊讶的是它没有序列化表单。这是代码:
<div id="content">
</div>
<form id= "myform">
<input type="text" id="inp"value="mytext">
<input type="button" id="btn" value="serialize"/>
</form>
这是我正在使用的jQuery代码:
$("form").submit(function(e){
e.preventDefault();
var v= $(this).serialize();
console.log(v);
});
以下是fiddle
答案 0 :(得分:54)
您的name
字段需要input
个属性。否则它们会被jQuery的.serialize()
忽略。
这是引用from the docs:
注意:只有“成功控件”被序列化为字符串。没有提交按钮值被序列化,因为表单未使用按钮提交。 要将表单元素的值包含在序列化字符串中,该元素必须具有名称属性。复选框和单选按钮(“radio”或“checkbox”类型的输入)中的值仅在选中时才包括在内。来自文件选择元素的数据未被序列化。
以下是您使用名称属性的小提琴:http://jsfiddle.net/6fgUg/28/
答案 1 :(得分:3)
您必须为输入HTML元素指定名称,例如:
<form id="myform">
<input type="text" id="inp" name="inp" value="mytext">
<input type="button" id="btn" name="btn" value="serialize"/>
</form>