2011-10-12 6 views
11

formtrタグ内に記述することはできますか?テーブル行タグ内のフォーム

<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

あなたがテーブルやIMO – Rob

+0

@Robは異なり、単に純粋なCSSを使用しない方がよいでしょう、テーブルは、表形式のデータのOKです。しかし、レイアウトするためではありません。 – Petruza

答えて

9

trdoesn't allow form-tags as direct children。現代のブラウザでは多くのことをやらせてくれるので、を使うことができますが、私はそれをと呼ぶことはありません。です。単に使用し、

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

か、非常に簡単に:より良いアプローチはしますがtd S(tdの子としてテキストが、フォーム、inline-とブロック要素許可)の1つに完全な形になりますリンク(しかしdataGET代わりのPOSTを使用して送信されることに注意してください - 多分あなたはブラックリストを扱うあなたのコードで何かを変更する必要があります):

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

はそれがTR内のフォームを書くことOKですタグ?

いいえフォームには表を含めることができます。表セルはフォームを含むことができます。

私はそうのように、この問題にアプローチしたい:

<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

いいえ、それは正しくありません。フォームタグは、表の外側または表のセル内になければなりません。

フォームタグをテーブルの内側に置くことは、フォームが余分なスペースを占めるのを防ぐための古いトリックです。あなたはちょうどそれのためのCSSを使用する必要があります。

form { margin: 0; padding: 0; }