2012-01-31 73 views
12

我涉足表單序列化,但令人驚訝的是它沒有序列化表單。下面是代碼: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

回答

47

您需要在input字段name屬性。否則,它們會被jQuery的.serialize()忽略。

這裏的報價from the docs

注意:只有 「成功控制」 被序列化到字符串。由於未使用按鈕提交表單,所以沒有提交按鈕值被序列化。 對於要包含在序列化字符串中的表單元素的值,元素必須具有名稱屬性。僅當檢查複選框和單選按鈕(「收音機」或「複選框」類型的輸入)時,纔會包含這些值。來自文件選擇元素的數據不會被序列化。

這是你擺弄的名稱屬性:http://jsfiddle.net/6fgUg/28/

+1

啊!我只需要一組新鮮眼睛,即時回覆tnx – Tassadaque 2012-01-31 05:06:28

2

你必須給一個名稱輸入HTML元素,例如:

<form id="myform"> 
    <input type="text" id="inp" name="inp" value="mytext"> 
    <input type="button" id="btn" name="btn" value="serialize"/> 
</form>