回答編集履歴

2 書式が...

popobot

popobot score 5800

2017/03/06 13:18  投稿

> email、生年月日がそれぞれ入力、選択されていない場合に送信ボタンが押されないようにしたいのですが
これはブラウザのフォーム検証のことを言っているのだと思いますが、これはあくまで補助的なバリデーションです。ブラウザによって機能がないものもあります。
参考:[データフォームの検証](https://developer.mozilla.org/ja/docs/Learn/HTML/Forms/Data_form_validation)
Cakephpは入力必須な項目は自動的にrequire属性を付けますが、date側はフォームが複雑(3つにわかれる)なので対応していないのかもしれません。
※頑張ればできると思いますが、やる意味はあまりないと思います...
 
----
厳密にバリデーションしたければ、送信されたあとにデータをバリデーションすべきです。Cakephpにはデータをバリデーションする機能があります。
参考:[データの検証](https://book.cakephp.org/3.0/ja/orm/validation.html)
記載されているコードは_buildValidatorとなっていますが、おそらくpublic function validationDefaultが正しいのではないかと思います。
1 補足

popobot

popobot score 5800

2017/03/06 07:41  投稿

> email、生年月日がそれぞれ入力、選択されていない場合に送信ボタンが押されないようにしたいのですが
これはブラウザのフォーム検証のことを言っているのだと思いますが、これはあくまで補助的なバリデーションです。ブラウザによって機能がないものもあります。
参考:[データフォームの検証](https://developer.mozilla.org/ja/docs/Learn/HTML/Forms/Data_form_validation)
Cakephpは入力必須な項目は自動的にrequire属性を付けますが、date側はフォームが複雑(3つにわかれる)なので対応していないのかもしれません。
※頑張ればできると思いますが、やる意味はあまりないと思います...
----
なお、厳密にバリデーションしたければ、送信されたあとにデータをバリデーションすべきです。
厳密にバリデーションしたければ、送信されたあとにデータをバリデーションすべきです。Cakephpにはデータをバリデーションする機能があります。
参考:[データの検証](https://book.cakephp.org/3.0/ja/orm/validation.html)
記載されているコードは_buildValidatorとなっていますが、おそらくpublic function validationDefaultが正しいのではないかと思います。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る