JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.js"></script>
<div ng-controller="Ctrl">
    <select ng-model="select" ng-options="o.value for o in options" ng-required ng-change="confirmChange(select)"></select>
</div>

JavaScript

var app = angular.module('myApp', []);

var confirmDialog = function(newVal, yes, no) {
    // obviously not a good way to ask for the user to confirm
    // replace this with a non blocking dialog
    
    //the timeout is only for the confirm since it's blocking the angular $digest
    setTimeout(function() {
        c = confirm('Is it ok? [' + newVal.value + ']');
        if(c) {
            yes();
        }
        else {
            no();
        }
    }, 0);
}

function Ctrl($scope) {
    $scope.options = [{value: 'abc'},{value: 'def'}];
    
    $scope.select = undefined;
    var oldSelect = undefined;
    $scope.confirmChange = function() {
        console.log(arguments);
        confirmDialog($scope.select, function() {
                oldSelect = $scope.select;
             },
             function() {
                $scope.$apply(function() {$scope.select = oldSelect;});
            });
    }
}