フォームタグの中にテーブル

[新着] Webテンプレートを仮オープンしました



0   名前: ロビン : 2006/01/06 19:29
下のような感じでフォームタグの中にテーブルを入れることはできますか?
文法違反でしょうか?
<form>
<table>
<tr>
<td>お名前:</td><td><input type="text" name="t"></td>
</tr>
</table>
</form>

1   名前: 匿名希望 : 2006/01/06 19:29
そりゃ、フォーム「タグ」の中にテーブルなど入れられませんが【揚げ足取り】

form要素の中にtable要素を入れるのは構いません。
ただ厳密に言えば>>0には必須の属性が欠けています。

2   名前: ロビン : 2006/01/06 19:29
>form要素の中にtable要素を入れるのは構いません。

<form>
お名前:<input type="text" name="t">
<table>
<tr>
<td>セル1</td><td>セル2</td>
</tr>
</table>
お名前:<input type="text" name="t">
</form>
↑の形が正解なんですか?(form要素の中にテーブルが入ってます)

>ただ厳密に言えば>>0には必須の属性が欠けています。

単にボタンとかテキストボックスだけをブラウザに表示
させたいだけの場合にはaction属性は必要ないですよね?


3   名前: 匿名希望 : 2006/01/06 19:29
※文章修正

form要素は、「送信する」という目的以外に「情報のかたち」を表しませんので、
その中には原則として「情報のかたち」を表すブロック要素しか置けません。
(だからtable要素も可)

form要素の中に、テキストや「情報の細部」を表すインライン要素を直接置くことはできません。
# ただしTransitional DTDの場合は後方互換性のために許容されますが。

> action属性は必要ないですよね?

文法というのは作者の判断だけで変更できるものではありません。
action="#"とでもしておくか、そもそも

> 単にボタンとかテキストボックスだけをブラウザに表示

なら別にform要素を書く必要はありません。コントロール類はインライン要素として扱われます。

4   名前: S : 2006/01/06 19:29
 action属性は必須。また、普通は送信先にCGIのURLを指定。mailto:〜でメールアドレスを指定した際の動作は未定義であり、動作保証外。

http://bakera.jp/html/reference/formctrl.html

http://nekoshiki.poke1.jp/guidline/form.html

5   名前: ロビン : 2006/01/06 19:29
文法というのは作者の判断だけで変更できるものではありません。
>action="#"とでもしておくか


フォームの部品である<input>タグを解説しているサイトとか見てると
1行のテキスト入力欄。
ソース
<form>
<input type="text" name="フィールド名" value="初期値">
</form>
ラジオボタン
ソース
<form>
<input type="radio" name="フィールド名" value="転送される内容">
</form>
のようにaction属性を記述してないサイトが多いんですが
なぜでしょうか?
http://www.tohoho-web.com/how2/form.htm#form
とほほ先生も↑のソース見たら記述してない模様です。


6   名前: Pid : 2006/01/06 19:29
> のようにaction属性を記述してないサイトが多い

そのサイトの日付を確認して下さい。

HTML 3.2 までは form 要素の action 属性はオプションでしたが,HTML 4.0 で必須になりました。もし 1998 年以前の解説ならば,その書き方でも正しいです。しかし,1999 年以降であれば,その書き方は間違いです。ただ,HTML 3.2 は今も現役ですから,「これは HTML 3.2 の解説です」と注意書きがあるなら問題ありません。

※ちなみに,3.2 仕様および 4.0 のドラフト段階では,action 属性に mailto: スキームを指定した例も載っています(>>4 で触れられているように,HTML 4.0 では削除されましたが)。


また,>>3 で触れられているように,HTML 4.0 では form 要素の中身は(原則として)ブロック要素に限られますので,テキストや input 要素を直接置くことはできません。form 要素の書き方ですが,(1) まず完全な HTML 文書を書く,(2) 必要な部分をコントロール化する,(3) 最後に必要な部分をまとめて form 要素化する,という手順で書くと良いでしょう。そうすれば,form 要素の中がブロック要素に限られる理由が分かると思います。

<form action="#">
<table>
<tr>
<td>お名前:</td><td><input type="text" value="お名前"></td>
</tr>
</table>
</form>

※と言うか,送信しないなら,(3) の form 要素化の手順は必要ないので,>>3 が仰るように

<table>
<tr>
<td>お名前:</td><td><input type="text" value="お名前"></td>
</tr>
</table>

で十分だと思いますが。


> とほほ先生も……記述してない模様です。

とほほ先生の記述は総じて古く,出典も明らかでないので,私はおススメしません。

※ HTML の場合,現状ではブラウザ上の表示が優先されるので,あまり細かいことを気にしなくても良いのですが,もしも今後 XML としての XHTML が広まれば,エラーが出現した時点で表示されなくなる可能性もあります(まあ,遠い先の話でしょうが)。文法に従うのは最初は窮屈ですが,「なぜそうなっているのか」を考えると納得のいくものが多いですし,慣れてしまえば,実はずっと楽に HTML を書けるようになるものです。

まあ,他人の解説よりも,まずは一次資料を読むべきでしょう。もちろん,私のこの投稿にも間違いがあるかもしれませんので,ロビンさんがご自身で一次資料をお読みになって,最終的な判断をして下さい。

7   名前: S : 2006/01/06 19:29
 HTMLのバージョンについては下記資料参照。時々”間違った資料に基づいた間違った表記”があるので注意。

http://members.jcom.home.ne.jp/pctips/www/DOCTYPE.html

 また、とほほ氏の解説がなぜお奨めできないかは、下記資料を参考のこと。

http://members.jcom.home.ne.jp/pctips/Tondemo/

8   名前: ロビン : 2006/01/06 19:29
みなさんありがとうございます。
>1 3 6の方

送信ボタンとリセットボタンも含めてフォームを要素化することにします。
action属性もつけようと思います。

>Sさん

参考になりましたが少し厳しすぎる意見が多いですね。
とほほ先生以外の解説サイトも斬っているように思えました。
とほほ先生が初心者に対して説明不足なとこが多いような
ことかいてますけどそんな1から100まで完璧に初心者に
理解してもらえるような解説サイトってなかなかないですよねえ。


9   名前: 匿名希望 : 2006/01/06 19:29
>>8
だからといって間違った知識を初心者に与えるのは感心しません。
それでHTMLを習得したつもりな初心者を量産して文法グチャグチャなサイトが蔓延。
ぶっちゃけいい迷惑です。
ま、僕もとほほはお勧めできかねますね。

10   名前: Pid : 2006/01/06 19:29
※オフトピ。

>>8
> とほほ先生が初心者に対して説明不足なとこが多い
> 1から100まで完璧に初心者に

んー,そんなことは誰も主張していないと思う。

言語に 100 個の事項があるとしたら,その中で「本当に大事なもの」はせいぜい 10 個くらいです。でも,その 10 個さえ確実に覚えてしまえば,その言語の七割以上はもう理解できます。残りの 90 個は,あとで必要になったら覚えれば良い。

逆に,とほほ先生は,「本当に大事なもの」「あとで覚えれば良いもの」「覚えない方が良いもの」「廃止されたもの」を全部ごっちゃに書いています。ですから,事情をよく知っている中上級者には参考になる部分もありますが,入門者には何が「本当に大事なもの」か分からない。私が >>6 で「おススメできない」と述べたのはそういう意味です。

また,「本当に大事な部分」を見極めるには,「なぜそうなっているのか」の理解が必要です。しかし,とほほ先生は「なぜそうなるのか(本質)」を全く説明せずに,「どうすれば良いか(意地悪く言えば小手先)」しか教えてくれない。そういう入門からは「文法なんてどうでも良くて,とりあえず自分の所で,今うまくいきさえすれば良い」という態度が生まれやすいわけで,>>8 で S さんが挙げたページで批判しているのは,まさにその点なのです。

まあ,「何だかピントがずれた入門」というのはストリクト系の解説でもよく見かけますし,他の言語でもたくさんありますし,何より私自身,人のことは全然言えないのですが (^^;)。

11   名前: 匿名希望 : 2006/01/06 19:29
 私見ながら、神崎氏の解説(30分入門、ごく簡単な、少し詳しい、の段階的説明)のほうが”とほほ氏のより”よっぽどためになると思う(もちろん野嵜氏の解説(HTMLの定義のための覚書)も秀逸だが)。

http://www.kanzaki.com/docs/htminfo.html

>>6
>>ただ,HTML 3.2 は今も現役ですから,「これは HTML 3.2 の解説です」と注意書きがあるなら問題ありません。
 日本語文字(JIS、シフトJIS、EUC)を使うためにはHTML3.2は対象外となる、はずでは。

http://bakera.jp/html/book/nokezori.html

一覧へ戻る