javascript - Change input field in angularJS -
i'm new angularjs , want rewrite input field when user presses character. example, if user enters "aab", when "b" pressed want replace entire field "y".
using ng-keypress partly works, leaves "yb" instead of "y". full example code below. test enter "aab".
<html ng-app="testapp"> <body ng-controller="testctrl ctrl"> <form name="testform"> <input type="text" ng-keypress="ctrl.keypressfunc($event)" name="testname" ng-model="ctrl.testvalue" required > <br/> ctrl.testvalue: {{ctrl.testvalue}} <br/> ctrl.eventa: {{ctrl.eventa}} <br/> <p/> ctrl.eventa.charcode: {{ctrl.eventa.charcode}} <br/> ctrl.eventa.keycode: {{ctrl.eventa.keycode}} <br/> ctrl.eventa.shiftkey: {{ctrl.eventa.shiftkey}} <br/> ctrl.eventa.altkey: {{ctrl.eventa.altkey}} <br/> ctrl.eventa.ctrlkey: {{ctrl.eventa.ctrlkey}} <br/> </form> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.js"> </script> <script type="text/javascript"> angular.module('testapp', []) .controller('testctrl', [function () { var self = this; self.eventa = null; self.testvalue = "x"; // initialize input field // when user presses 'b', change entire testvalue "y". self.keypressfunc = function(eventa) { self.eventa = eventa; if (eventa.charcode == 98) { // if 'b' self.testvalue = "y"; } }; }]); </script> </body> </html>
how can angularjs show "y" , not "yb"? many thanks!
use preventdefault when 'b' pressed.
self.keypressfunc = function(eventa) { self.eventa = eventa; if (eventa.charcode == 98) { // if 'b' self.testvalue = "y"; eventa.preventdefault(); } };
Comments
Post a Comment