AngularJS Example:

HTML

<div ng-app="control_group">
    <div ng-controller="Controller1">
        <form name="myListOfNames">
            <div class="control-group" id="control-group-title">
                <label class="control-label" for="title">Title</label>                    
                <div class="controls">
                    <input type="text" id="title" name="title" required ng-model="title">
                </div>
                <div class="help-inline" ng-show="myListOfNames.title.$error.required == true">
                    Required.                                
                </div>
            </div>
            <div ng-repeat="person in persons">
                <div>Person {{$index}} - {{person.first_name}} {{person.last_name}} ({{person.birthday}})</div>
            </div>
            <div ng-repeat="person in persons">
                <controlgroupr ng-model="person" required="required" display="First name" field="first_name"></controlgroupr>
                <controlgroup ng-model="person" display="Last name" field="last_name"></controlgroup>
                <controlgroupr ng-model="person" required="required" display="Birthday" validate="date" field="birthday"></controlgroupr>
                <controlgroup ng-model="person" display="Birthday"  validate="date" field="birthday"></controlgroup>
            </div>
        </form>
    </div>                
</div>

CSS

</style> <!-- Ugly Hack due to jsFiddle issue: http://goo.gl/BUfGZ --> 
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<script src="http://code.angularjs.org/angular-1.0.0rc10.min.js"></script>
<script src="http://code.angularjs.org/angular-resource-1.0.0rc10.min.js"></script>
<style>

JavaScript

//UUID/Guid Generator
// use: UUID.create() or UUID.createSequential()
// convenience:  UUID.empty, UUID.tryParse(string)
(function(w) {
    // From http://baagoe.com/en/RandomMusings/javascript/
    // Johannes Baagøe <[email protected]>, 2010

    function Mash() {
        var n = 0xefc8249d;

        var mash = function(data) {
            data = data.toString();
            for (var i = 0; i < data.length; i++) {
                n += data.charCodeAt(i);
                var h = 0.02519603282416938 * n;
                n = h >>> 0;
                h -= n;
                h *= n;
                n = h >>> 0;
                h -= n;
                n += h * 0x100000000; // 2^32
            }
            return (n >>> 0) * 2.3283064365386963e-10; // 2^-32
        };

        mash.version = 'Mash 0.9';
        return mash;
    }

    // From http://baagoe.com/en/RandomMusings/javascript/

    function Kybos() {
        return (function(args) {
            // Johannes Baagøe <[email protected]>, 2010
            var s0 = 0;
            var s1 = 0;
            var s2 = 0;
            var c = 1;
            var s = [];
            var k = 0;

            var mash = Mash();
            var s0 = mash(' ');
            var s1 = mash(' ');
            var s2 = mash(' ');
            for (var j = 0; j < 8; j++) {
                s[j] = mash(' ');
            }

            if (args.length == 0) {
                args = [+new Date];
            }
            for (var i = 0; i < args.length; i++) {
                s0 -= mash(args[i]);
                if (s0 < 0) {
                    s0 += 1;
                }
                s1 -= mash(args[i]);
                if (s1 < 0) {
                    s1 += 1;
                }
                s2 -= mash(args[i]);
                if (s2 < 0) {
                    s2 += 1;
                }
                for (var j = 0; j < 8; j++) {
                    s[j] -= mash(args[i]);
                    if (s[j] < 0) {
                ...