У меня есть несколько <form>
на одной странице, все из которых имеют уникальные идентификаторы, а тело формы - как показано ниже.
<form id="form-main">
<table>
<tr>
<td><input type="text" name="field1"/></td>
. . . . . . .
. . . . . . .
</tr>
</table>
<table>
<tr>
<td><input type="text" name="field2"/></td>
. . . . . . .
. . . . . . .
</tr>
</table>
</form>
<form id="form-second">
<table>
<tr>
<td><input type="text" name="field3"/></td>
. . . . . . .
. . . . . . .
</tr>
</table>
<table>
<tr>
<td><input type="text" name="field4"/></td>
. . . . . . .
. . . . . . .
</tr>
</table>
</form>
Я знаю, что это не рекомендуется использовать таблицы для того, выровнено поле формы, и можно сделать это с помощью CSS, но актуальная проблема в том, что, когда я использую $("#form-main").serializeArray
, я должен получить все поля этой формы в моем массив, но здесь я получаю только поля первой таблицы в форме, остальные входы просто игнорируются.
Действительно ли это serializeArray()
? или мое использование таблиц является реальной проблемой? Я могу использовать div
s вместо таблиц, но это был бы мой последний вариант. Кроме того, в этих нескольких формах первая таблица имеет поля, которые обязательны для заполнения, поэтому, наряду с подходом «validate-as-you-type», я повторяю эти обязательные поля, чтобы проверить, что они не оставлены пустыми, поэтому является причиной, по которой только первая таблица каждой формы включена в объект массива.
'Я знаю, что не рекомендуется использовать таблицы для выравнивания полей формы ... с каких пор? Конечно, css работает, но иногда простота - ключ. Не позволяйте «настольным ненавистникам» добраться до вас. Ничего плохого в хорошо сформированном столе. – SpYk3HH
Все поля во 2-й таблице, используя тот же атрибут 'name', что и в первой таблице? –
2 вещи, которые нужно проверить для btw, 1) ваша форма полностью обертывает таблицу, 2) все ли входы, выделения и текстовые поля имеют атрибут 'name'? – SpYk3HH