我是angularJS的新手,想要重写一个输入字段 用户按某个字符。例如,如果是用户 进入“aab”,当按下“b”时我要更换 整个领域只有“y”。
使用ng-keypress部分工作,但留下“yb”而不是公正 “Y”。完整的示例代码如下。要测试它,请输入“aab”。
<html ng-app="testApp">
<body ng-controller="testCtrl as 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 the input field
// When the user presses 'b', change the entire testValue to "y".
self.keyPressFunc = function(eventa) {
self.eventa = eventa;
if (eventa.charCode == 98) { // if 'b'
self.testValue = "y";
}
};
}]);
</script>
</body>
</html>
如何让angularJS显示“y”而不是“yb”? 非常感谢!
答案 0 :(得分:1)
按下'b'时使用preventDefault。
self.keyPressFunc = function(eventa) {
self.eventa = eventa;
if (eventa.charCode == 98) { // if 'b'
self.testValue = "y";
eventa.preventDefault();
}
};