Angular:
http://angularjs.org/
HTML
<div ng-controller="MyCtrl">
<form name="form" ng-submit="createShipment()">
<!-- Other fields -->
<input name="shipmentDate"
ng-pattern='/^(0?[1-9]|1\d|2[0-8]|29(?=[-]\d?\d[-](?!1[01345789]00|2[1235679]00)\d\d(?:[02468][048]|[13579][26]))|30(?![-]0?2)|31(?=[-]0?[13578]|[-]1[02]))[-](0?[1-9]|1[0-2])[-]([12]\d{3})$/'
required ng-model="shipment.ShipmentDate" type="text">
<span ng-show="form.shipmentDate.$error.required">Date Required!</span>
<span ng-show="form.shipmentDate.$error.pattern">Incorrect Format, should be DD-MM-YYYY</span>
<input class="btn-primary" ng-hide="!form.$valid" type="submit" value="Create">
</form>
</div>
JavaScript
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {}