Symfony2でForm送信するときデフォルトでは無条件でhtml5のクライアントサイドのバリデーションが有効になるみたいです。ちゃんと検証していませんが全部の値がrequire(必須入力項目)になっているような感じでした。もちろんこのバリデーションはカスタマイズが可能なんですが、Symfony2のおそろしく複雑な流儀を覚えるのが大変なので、私個人としてはこれらのバリデーションは自分で書くようにしております。
JSとSymfony2のコントローラ側で2回やります。GUIはJS側で中身のデータの確認はコントローラという分担がよいかと思います。というのは直接POSTされたりしたらJSスルーしてしまう可能性もあるからです。(そうならないようにはなっていますが。)
デフォルトのバリデーションを無効にするには、Twigのテンプレート中のsubmitのところにnovalidate属性をつけてあげます。
... {{ form_widget(form) }} <input type="submit" id="submit" value="送信" formnovalidate="formnovalidate"> ...これでデフォルトのバリデーションが解かれてそのまま値がなくてもsubmitされるようになります。
http://docs.symfony.gr.jp/symfony2/sf2-blog-tutorial/07-create-form.html