2016-11-01 10 views
0

は、私が使用して自分のフォームをシリアライズしています:テーブルのデータをシリアル化しますか?

formVals = $('#formID').serialize(); 

しかし、私はまた、私はそれを行うことができますシリアライズとformValsにそれを追加したいテーブルを持っていますか?私が試した:

$('#tableName').find('tr').each(function(){ 
    formVals = $(this).text().serialize(); 
}) 

しかし、それは私がやりたいことは、各trからテキストを取ると出日付とともにformValsに新しいエントリとして追加され

Uncaught TypeError: $(...).text(...).serialize is not a function

になります。これを行う方法はありますか?

UPDATE

行は次のようになります。

<tr id="12354-515-asd"> 
<td>Today</td> 
<td>0000</td> 
<td>Monday</td> 
<td>2345</td> 
</tr> 

formValsに追加する期待値は次のとおりです。 12354-515-asd=Today0000Monday2345

+0

クエリーストリング出力はどのようなものですか? 'tr 'はどのようなキー値を使うべきですか? –

+0

フォームからの現在の出力は 'key = value&key = value'です。これにtr id =すべての行テキスト値などを追加します。 例:' 12354-515-asd = Today0000Monday2345&145155-545-BFE = Now1230Wednesday2100' – Tom

+0

申し訳ありませんが、意味がありません。あなたのテーブルHTMLの小さなサンプルを質問 –

答えて

3

あなたはformValsに各パラメータを連結する必要があります。

formVals = $("#formID").serialize(); 
$('#tableName').find('tr').each(function(){ 
    formVals += '&' + this.id + '=' + encodeURIComponent($(this).text()); 
}); 
+0

に追加することができますか?それは私が必要とするものを正確に行うと思われる素晴らしいです。ありがとう – Tom

2

あなたがエラーになっている理由「キャッチされない例外TypeError:。。$(...)テキスト(...)を直列化機能ではありませんが、」シリアル化は、()に適用可能な機能ではないためであります「TR」または「TD」要素(あなたがこれを行うことはできません):

http://api.jquery.com/serialize/

The .serialize() method creates a text string in standard URL-encoded notation. It can act on a jQuery object that has selected individual form controls, such as , , and : $("input, textarea, select").serialize();

あなたがテーブルの行のIDを取得することで、文字列を構築する必要があり、このデータを追加したい場合は、各<td>要素を反復処理する(データを追加する) - Barmarのansを参照確かな例があります。