更改angularJS

时间:2015-06-15 01:35:47

标签: javascript angularjs

我是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”? 非常感谢!

1 个答案:

答案 0 :(得分:1)

按下'b'时使用preventDefault。

self.keyPressFunc = function(eventa) {
    self.eventa = eventa;
    if (eventa.charCode == 98) {   // if 'b'
      self.testValue = "y";
      eventa.preventDefault();
    }
};