- ベストアンサー
action属性は、form要素でしか使えないんで
action属性は、form要素でしか使えないんですか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>W3C的には使えないのに ブラウザが使えるように調整しちゃっているということですか? 仕様にないものは、表示するときは元々記述されていないものとして扱うブラウザが多いはずです。何らかの情報を表示するのがブラウザを使う目的なので、できるだけ目的を達成できるように処理しているということです。 >バリデーターっていうのは、かるくぐぐったんですが、html以外にも、phpのバリデーター、パイソンのバリデーター、Javaのバリデーターなどがあるんですか? スクリプト言語の場合、実際に実行してみれば、文法的な間違いは指摘してくれるので、特にバリデーターは必要ないと思いますが、あっても問題はないでしょう。オンラインで実行できる環境などもあるので、バリデーター代わりに使用することはできると思います。 HTMLの場合、文法的な間違いなどがあっても、ブラウザは表示してしまうので、間違いがあることに気づけない場合があります。なので、バリデーターで正しい記述になっているか確認するようにしています。
その他の回答 (3)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>CDNとは? >オフラインとは? >jqueryの実体化とは? >セレクターとは? >formタグがactionを要求とは? 今はわからなくていいです。 そもそも、わかっていればこの質問はなかったと 思いますので。 ただ、このサンプルで実際に FORMタグ以外で、ACTIONを記載できている事だけを 確認できるので今はそれだけでOKですよ。 やっていくうちに、なぜ記載が出来るのか? 記載してもなぜFORMでしか、ACTIONを 使っているタグがないのかも、わかって来るとは思います。 ただ、多くの教科書は、「普通はこうだから!」と しか教えず、実際には、このサンプルのように、 いや、書けるし認識されてるよね?って部分は教えない物です。 その「教わらない物」がいつか、貴方を助ける日が来ます。 それまで、頭の中で取っておけばそれでよいかと。 では、良い一日を!
お礼
ありがとうございます
- m-take0220
- ベストアンサー率60% (477/782)
タグごとに使用できる属性は仕様で決められています。 actionは確かform以外のタグには使えない仕様だったと思います。 少なくともdivやpにはaction属性は認められていません。 W3Cが提供するvalidatorにかければ、仕様に沿った記述でないとしてErrorが表示されます。 ブラウザは、仕様から外れた記述であっても、表示できる方がシェア獲得のためには有利なので、柔軟に対応しているだけです。
お礼
W3C的には使えないのに ブラウザが使えるように調整しちゃっているということですか? バリデーターっていうのは、かるくぐぐったんですが、html以外にも、phpのバリデーター、パイソンのバリデーター、Javaのバリデーターなどがあるんですか?
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>action属性は、form要素でしか使えないんですか? これを、FORM以外でACTIONを使う方法として回答しておきます。 使い方: CDNを利用しているので、オフラインにする場合は、 jqueryの実体化をしてください。 ソースに日本語が含まれるため、UTF-8で保存するか 適切なcharsetを指定(UTF-8の場合は、このままでOK) 特にファイル名に制限はないので、HTMLとして ブラウザが認識できればOKです。 この例では、formタグ以外で、actionが使用できている 事を証明しています。 さらに、「実在しないタグ」=<waaa>というタグを 勝手に作り出し、さらにactionが使用できていることも 確認できると思います。 このように、タグというのは「タグ」であり、 それ自体に意味はなく、機能を選んでいるにすぎません。 それをブラウザが解釈する時に何をするか?を選ぶ セレクター的な動作として使われているのがわかると思います。 今回の場合は、 actionがformで使えるか?ではなく、 formタグがactionを要求しているというニュアンスが わかりやすいかと。 なので、size(サイズ)を書いても無意味なタグに、 size(サイズ)を入れても「問題はなく、何も起こらない」 元々のタグがそれを読み取るか?という タグ+追加設定 と考えたほうが理解は早いかと思います。 ひとまず、質問の、 「action属性は、form要素でしか使えない」 が、そうではない事が実験できるソースを 貼っておきますので、実験してみてください。 [code] <html> <head> <!-- Jquery CDN を頂く --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(function() { var selecter1=$('#id_1'); var tag1=selecter1.get(0).tagName; var action1=selecter1.attr('action'); var selecter2=$('#id_2'); var tag2=selecter2.get(0).tagName; var action2=selecter2.attr('action'); var selecter3=$('#id_3'); var tag3=selecter3.get(0).tagName; var action3=selecter3.attr('action'); var selecter4=$('#id_4'); var tag4=selecter4.get(0).tagName; var action4=selecter4.attr('action'); $('#out').val( tag1 + 'タグのactionは ' + action1 + 'です\n'+ tag2 + 'タグのactionは ' + action2 + 'です\n'+ tag3 + 'タグのactionは ' + action3 + 'です\n'+ tag4 + 'タグのactionは ' + action4 + 'です\n' ); }); </script> </head> <body> <form id="id_1" action="abc"></form> <div id="id_2" action="def"></div> <p id="id_3" action="ghi"></p> <waaa id="id_4" action="jkl"></waaa> <textarea id="out" cols="33" rows="5"></textarea> </body> </html> [/code]
お礼
CDNとは? オフラインとは? jqueryの実体化とは? セレクターとは? formタグがactionを要求とは?
お礼
ありがとうございます