Подтвердить что ты не робот

Форма в теге table-row

Можно ли написать form в теге tr?

<table>
    % for my $word ( @$words_2 ) {
        <tr>
            <form action="/blacklist" method="post">
            <td><%=$word%></td>
            <td><input type="text" name="data" readonly hidden value="<%=$word%>" /></td>
            <td><input class="remove" type="submit" value="Remove" /></td>
            </form> 
        </tr>
    % }
</table>
4b9b3361

Ответ 1

tr не позволяет form -tags как прямые дочерние элементы. Большинство современных браузеров позволят вам делать много дерьма, и поэтому вы можете использовать это, но я бы не назвал это ОК. Лучшим подходом будет только полная форма в один из td (td разрешить текст, формы, встроенные и блочные элементы как дочерние):

<table>
    <% for my $word ( @$words_2 ) { %>
        <tr>
            <td><%=$word%></td>
            <td>
              <form action="/blacklist" method="post">
                <input type="text" name="data" readonly hidden value="<%=$word%>" />
                <input class="remove" type="submit" value="Remove" />
              </form> 
            </td>
        </tr>
    <% } %>
</table>

или, намного проще, просто используйте ссылку (но обратите внимание, что data отправляется с использованием GET вместо POST - возможно, вам придется что-то изменить в коде, который обрабатывает черный список):

<table>
    <% for my $word ( @$words_2 ) { %>
        <tr>
            <td><%=$word%></td>
            <td><a href="/blacklist?data=<%=$word%>">Remove</a></td>
        </tr>
    <% } %>
</table>

Ответ 2

Можно ли написать форму в теге tr?

Нет. Формы могут содержать таблицы. Табличные ячейки могут содержать формы.

Я бы подошел к этой проблеме следующим образом:

<form action="/blacklist" method="post">
    <fieldset>
    <legend>Remove</legend>
    % for my $word ( @$words_2 ) {
    <label>
        <input type="checkbox" name="data" value="<%=$word%>" />
        <%=$word%>
    </label>
    % }
    </fieldset>
    <input class="remove" type="submit" value="Remove" />
</form>

Ответ 3

Нет, это неверно. Тег формы должен находиться вне таблицы или внутри ячейки таблицы.

Помещение тега формы внутри таблицы является старым трюком, чтобы форма не занимала лишнее пространство. Вы должны просто использовать CSS для этого:

form { margin: 0; padding: 0; }