jQuery Validateプラグインを利用してのバリデートではデフォルトではhidden状態の要素には反応しないようになっているため、Select2プラグインを適用したセレクトボックスではバリデートが反映されません。
これは、Select2のプラグインを利用すると、セレクトボックスを非表示にしてしまうためです。
そこで以下の指定を加えることで、Select2のプラグインでもバリデートを適用できるようになります。
<script type="text/javascript"> jQuery(document).ready(function ($) { $("#post").validate({ ignore: ":hidden:not(.select2-hidden-accessible)" }); }); </script>
参考:Ignore all hidden div but not one in jQuery validation
jQuery Validate – Enable validation for hidden fields