jQuery序列化不起作用

时间:2012-01-31 04:58:22

标签: jquery

我正在尝试使用表单序列化,但令人惊讶的是它没有序列化表单。这是代码:

<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

2 个答案:

答案 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>