こんなパスワード覚えられないよなぁ。
先日jQueryでのFormのバリデーションを書きましたが、CakePHPの場合、CakePHPで用意されています。
echo $html->input('User/name', array('type'=>'text','size'=>10));
echo $html->tagErrorMsg('User/name', '<span id="error_msg">名前は必須です</span>');
上記のようにhtmlhelperでtagErrorMsgを書いておけば、名前が無記入だった時、エラーメッセージ「名前は必須です」が表示されます。(tagErrorMsgを書いた場所に)
ただ、実は上記だけではだめでUserのModelに
class User extends AppModel {
var $name = 'User';
var $validate = array(
'name' => VALID_NOT_EMPTY
);
}
という感じに$validateを定義しておく必要があります。
VALID_NOT_EMPTYは空はエラーという意味で、
・VALID_EMAIL:メールアドレスの形式(aaa@aaa.com)じゃないとエラー
・VALID_NOT_EMPTY:空だとエラー
・VALID_NUMBER:数字じゃないとエラー
・VALID_YEAR:年(1000-2999)じゃないとエラー
があるっぽいです。
ちなみに入力エラーの場合、エラー箇所にエラーメッセージが表示されて、正常なところは値が保存されます。
(入力されていた値がフォームに入力されたままになってる)
これは非常に便利なんですが、いちいちクリアしたいと言う場合があったので、そのときは
echo $html->input('User/name', array('type'=>'text','size'=>10, 'value'=>''));
echo $html->tagErrorMsg('User/name', '<span id="error_msg">名前は必須です</span>');
という感じで、valueに空文字列を与えておけばOKでした。
以上
Add Your Comment