CakePHP2.3から、モデルのバリデーション定義で必須項目にしているフィールドには、Viewのinputタグにrequrired属性が追加されるようになりました。 つまり、下記のようなinputタグが出力されるということです(一番最後のrequired=の箇所) <input name="data[Contact][name]" maxlength="50" type="text" id="ContactName" required="required"/> これがあると、最近のブラウザではsubmit前に下記のような表示が出てPOSTできないようになります(firefoxの例) これがあれば、Javascriptを使ったPost前のバリデーションチェックが少し楽になると思います。 ソースコードはまだ読んでませんが、どうも動きを見ると、allowEmptyがfalseの場合にこの動作に