Angular: Empty Fiddle

http://angularjs.org/

HTML

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/base/jquery-ui.css">
<link rel="stylesheet" href="http://angular-ui.github.com/angular-ui/build/angular-ui.css">
<script src="http://code.angularjs.org/1.0.1/angular-1.0.1.min.js"></script>
<script src="http://angular-ui.github.com/angular-ui/build/angular-ui.js"></script>
<div ng-controller="MyCtrl">
    <p>Try ENTER and ESC in <code>textarea</code> - it resets model OK. But if you do the same in <code>input text</code>, only the ENTER works. :(</p>
    
    <textarea ng-model="search.query" ui-keypress="{esc: 'keyCallback($event)', enter : 'keyCallback($event)'}"></textarea>
    <input ng-model="search.query" ui-keypress="{esc: 'keyCallback($event)', enter: 'keyCallback($event)'}" />
    
    <p>model = '{{search.query}}'</p>
</div>

CSS

body {
    margin: 3em;
}
p,
input,
textarea {
    display: block;
    margin: 0 0 1em 0;
}

JavaScript

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

function MyCtrl($scope) {
    $scope.search = {
        query: 'some input'
    }
    
    $scope.keyCallback = function($event) {
        $event.preventDefault();
        $scope.search.query = '';
    }
}