You can rely on Angular to do the validation for this, and not in the browser. Here is my forked example:
http://codepen.io/anon/pen/rVGLZV
In particular:
<button type="submit" ng-disabled="myForm.$invalid">submit</button>
So that the submit button is disabled until the form is valid, and
<form novalidate name="myForm">
To name the form and tell the browser not to do its own validation.
You can even add some CSS class for ng-invalid to display red color around invalid fields.
EDIT: make sure you put ng-model on <select multiple> , otherwise the required attribute will not work.
source share