記事

[CakePHP1.3]Formヘルパーでtype=”email”が出せない件と解決方法

  • このエントリーをはてなブックマークに追加

CakePHPのヘルパーは非常に便利です。

ただ、ここに来て問題が、、、
簡単に言うと、HTML5に未対応なんですね。
だから例えば

<input type="email" />

みたいなタグを出力したい場合、
当然

echo $form->input('Model', array('type' => 'email'));

と書くと、なんとテキストエリアが表示されてしまうのです。

対策としてはまず一つ、
・ヘルパー使わずにベタで書く

<input type="email" />

みたいな感じで。
でもなーんか嫌。

もう一つが、cakeのlibの中のform.phpをいじっちゃう。
これもなんか嫌。出来るだけappの中だけで解決したい。

と、そこでGoogle先生にお尋ねしたところ、同様の問題でお困りの方を発見(英語)そらいますわな。最近HTML5盛り上がってますもん。
ずーっと下の方まで目を通して見ると、「Formヘルパー改造したよ」ってform.phpのファイルをアップロードしてくれている人発見。

早速ダウンロード。
やっぱりcakeの中身はあまりいぢりたく無いので、app/view/helperにこのform.phpをぶち込んで、再度

echo $form->input('Model', array('type' => 'email'));

を書いてみる。

で、表示されたのがめでたく

<input type="email" />

めでたしめでたし。

  • このエントリーをはてなブックマークに追加
2010年10月
« 9月   11月 »
 123
45678910
11121314151617
18192021222324
25262728293031

フォトライブラリー

コメント

  1. tmacoto より:

    CakePHP1.2で私もこの件ではまったのですが、この記述であっさり解決しました。
    $form->text(‘Model’, array(‘type’ => ‘email’));
    typeが書き換わってemailになるようです。(詳しくソースは追っかけてませんが、、)
    ご参考まで。

コメントを残す

%d人のブロガーが「いいね」をつけました。