2016-11-01 4 views
0

Я сериализации свою форму с помощью:Сериализовать данные таблицы tr?

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

Но у меня есть таблица, в которой я хотел бы сериализации и добавить его в formVals Можно ли это сделать? Я пробовал:

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

Но это приводит к

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

То, что я хочу сделать, это взять текст из каждого tr и добавить его в качестве новой записи в formVals вместе с выходящей даты. Есть ли способ сделать это?

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

Причина, почему вы получаете ошибку «Uncaught TypeError:.. $ (...) текст (...) сериализации не является функцией», потому что сериализации() не является функцией применима к а «тр» или элемент «тд» (вы не можете сделать это):

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();

Если вы хотите добавить эти данные, необходимые для создания строки, запрашивая идентификатор строки таблицы, и затем итерации через каждый элемент <td> (добавление данных внутри) - См. Barmar's ans для твердого примера.

Смежные вопросы