HTMLのINPUTタグで読み込み専用属性を与えるときは、
<input type="text" name="example" value="foo" readonly>
とすることでよいのだけど、今日多少悩んだのは、Ethnaで作成しているアプリケーションのテンプレート中でフォームヘルパの機能を使って自動的にフォームを出力させる様にしているケースで...
{form ethna_action="registration"} {form_input name="example"}<br> {form_submit value="送信"} {/form}
などとやっていたときに、{form_input...}で出力させるフォームに対して"readonly"プロパティを設定するにはどうすればよいのだろう?かと。そのまま
しばらく悩んだ後、次の様に書いたら解決した。
{form_input name="example" readonly="readonly"}
結果、フォームヘルパはINPUT要素のreadonlyプロパティを
<input type="text" name="example" value="foo" readonly="readonly">
と設定していることになるのだけど、作法としては良いのだろうか?
ブラウザ上では意図通り動いている様に見えるのだけど。
(Visited 11 times, 1 visits today)
> 作法としては良いのだろうか?
Ethna 的にはそれで問題ありません。フォームヘルパでは、Ethna が解釈する特定の属性以外はHTML の属性として扱うのが仕様だからです。(form_type によって「特定の属性」が何を指すのかは異なる場合があります)
つまり、{form_input name="hoge" "foo"="bar"} としても ブラウザ的に「"foo"="bar"」がOKであればそれで良い、というのが Ethna のフォームヘルパのスタンスです。ユーザ任せにするところとそうでないところを絶妙に切り分けようとしている、とも言えます。
なるほど。まずEthna的に問題ないということで安心しました。
ううむ、奥が深い。