2011-10-12 5 views
11

¿Está bien escribir form dentro de la etiqueta tr?formulario dentro de la etiqueta de la tabla de la fila

<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> 
+0

Eres mejor de no usar tablas y solo puro CSS OMI – Rob

+0

@ Rob depende, mesas están bien para los datos tabulares. Sin embargo, no es para planear. – Petruza

Respuesta

9

El trdoesn't allow form-tags as direct children. La mayoría de los navegadores modernos le permitirán hacer un montón de tonterías, por lo que podría usar, pero yo no lo llamaría OK. Un mejor enfoque sería sino la forma completa en una de las td s (s td permiten texto, formas, inline- y bloquear elementos como los niños):

<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> 

o, mucho más fácil, basta con utilizar una enlace (pero tenga en cuenta que data se envía utilizando GET en lugar de POST - tal vez usted tiene que cambiar algo en su código que se encarga de la lista negra):

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

¿Está bien para escribir un formulario en el tr ¿etiqueta?

No. Las formas pueden contener tablas. La tabla celdas puede contener formularios.

me gustaría enfocar este problema de este modo:

<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> 
1

No, eso no es correcto. La etiqueta de formulario debe estar fuera de la tabla o dentro de una celda de tabla.

Poner la etiqueta del formulario dentro de la tabla es un viejo truco para evitar que la forma ocupe más espacio. Usted sólo debe usar CSS para que:

form { margin: 0; padding: 0; } 
Cuestiones relacionadas