2013-11-04 47 views
1

我已經在下面的代碼段:jQuery的文本區選擇器在內部形成

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv='Content-Type' content='text/html;charset=utf-8' /> 

    <script type='text/javascript' src='jquery-1.10.2.min.js'></script> 
</head> 
<body> 
    <form id="testForm" method="post" action=""> 
     <textarea id="test" rows="15" cols="60"></textarea> 
    </form> 
    <button type="button" onclick="console.log($('#testForm :input').serializeArray());">Send</button> 
</body> 
</html> 

鉻控制檯正在打印一個空數組,就像如果#testForm:輸入選擇器被不選擇文本區域。我正在尋找一種方法來選擇所有表單輸入,這對於除textarea之外的其他元素都適用。我該如何解決?是序列化* 數組 *必要或我可以只使用序列化方法發送數據到服務器?

回答

1

.serializeArray()使用輸入元素的名稱進行序列化,因爲您的元素沒有名稱,所以省略。

.serializeArray()方法使用標準W3C規則爲 成功的控件確定它應包含哪些元素;在 中,特定元素不能被禁用,並且必須包含名稱 屬性。

<textarea name="test" id="test" rows="15" cols="60"></textarea> 

演示:Fiddle

1

對於serializeArray()方法的工作(和你的HTML是有效的),你需要給textarea一個name屬性:

<form id="testForm" method="post" action=""> 
    <textarea id="test" rows="15" cols="60" name="foo"></textarea> 
</form> 
<button type="button" onclick="console.log($('#testForm :input').serializeArray());">Send</button> 

Example fiddle

+0

D'oh ...謝謝。 – Jumpa

+0

@ jumpa沒問題,很樂意幫忙 –

1

.serializeArray()需要名稱屬性來創建一個數組,因此插入名稱選項

<textarea name="test" id="test" rows="17" cols="65"></textarea>