- ベストアンサー
inputタグはformタグで必ず囲む必要がありますか?
<input type="text">や< input type="button">などのinputタグは、入力欄に入力されたデータを他のファイルに送らずに同ファイル内で処理する場合も、必ず<form></form>で囲む必要があるのでしょうか? 例えば、<input type="text" id=”background_color”>に色(例:赤、青等)を入力し< input type="button" value=”変更” onClick=”change_background()”>ボタンを押すと、バックグラウンドの色が入力された色に変わるようなコードを書くとします。Javascript(change_background())の内容は同ファイルの<header></header>内に記述しますが、ここでは関係ないので割愛します。 この場合、 <body> <input type="text" id=”background_color”> < input type="button" value=”変更” onClick=”change_background()”> </body> で良いのでしょうか? それとも <body> <form> <input type="text" id=”background_color”> < input type="button" value=”変更” onClick=”change_background()”> </form> </body> とする必要が、ありますか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
inputは要求した内容をファイルに受け渡す時に使用される要素ですね。 formの一部としての機能と云うのを考えるとformで囲むのが常道でしょう。 同じファイルだとしても同様です。
その他の回答 (4)
- himajin100000
- ベストアンサー率54% (1660/3060)
>#3 そっか,こういう問題があるのか…勉強になった。 自分用のメモ: #form要素のaction属性は#REQUIREDなので,指定しなければならず, Web標準普及プロジェクトのコードはそのままでは使えないので注意する必要がある。 #別々のfieldset...でもダメだったな。
お礼
himajin100000さん ご意見、ありがとうございました。
- Werner
- ベストアンサー率53% (395/735)
私も、基本的にhimajin100000さんと同意見なのですが、 以下のリンク先のような問題もあるようなので留意しておいた方がよいかもしれません。 フォームコントロールはform要素内に書きましょう - Web標準普及プロジェクト http://www.mozilla.gr.jp/standards/webtips0017.html
お礼
Wernerさん ご回答、ありがとうございました。 参考にさせて頂きます。
- himajin100000
- ベストアンサー率54% (1660/3060)
>それでは、himajin100000さんの推奨されるコードは以下のようなものでしょうか? はい。その通りです。(何故か全角”になってますが半角"ですよね?) まあ自分の場合 <body> <dl> <dt>背景色</dt> <dd><input type="text" id="background_color" /></dd> <dt>処理</dt> <dd><input type="button" value="変更" onClick="change_background();" /></dd> </dl> </body> とまあ,dl要素,dt要素,dd要素で表現しておいて 必要に応じてdisplay:none;で非表示にすることが多いですけど。
お礼
himajin100000さん ご回答、ありがとうございました。 了解しました。
- himajin100000
- ベストアンサー率54% (1660/3060)
ご指摘の通り,どこにも送信しない場合,form要素を祖先に持つ必要はありません。 というか個人的な見解では「form要素を祖先に持つべきではない」とすら,思っています。(ここの回答でもどこにも送信しないのにform要素があるコードが見受けられ,歯がゆい思いをしています) #XHTML 1.0 Strictではbody要素の子はブロックレベル要素(del要素など一部例外あり)であり,この場合,bodyの子としてinput要素は存在できません。
補足
himajin100000さん ご回答、ありがとうございました。 >#XHTML 1.0 Strictではbody要素の子はブロックレベル要素(del要素 >など一部例外あり)であり,この場合,bodyの子としてinput要素は存 >在できません。 なるほど、 それでは、himajin100000さんの推奨されるコードは以下のようなものでしょうか? <body> <p> <input type="text" id=”background_color”> < input type="button" value=”変更” onClick=”change_background()”> </p> </body> 又は <body> <div> <input type="text" id=”background_color”> < input type="button" value=”変更” onClick=”change_background()”> </div> </body>
お礼
aidesさん ご回答、ありがとうございました。 了解しました。