繁体   English   中英

AngularJs-在按退格键时清除输入文本框中的整个文本

[英]AngularJs - Clear the entire text in a input textbox on pressing backspace button

浏览了网络帖子,但运气不足以找到解决方案。 我的要求是,当用户(在此处删除最右边的数字9,例如12345678 9 )从帐号末尾按退格键时,清除整个帐号。 任何帮助将不胜感激。

例如:12345678 9 9退格键应从输入文本框中清除整个帐户。

我也认为这不是一个好习惯,但是如果您想这样做,可以使用$ scope。$ watch跟踪输入的更改并将输入的新值与先前的值进行比较。substring(0,length-1)

  $scope.$watch('data', function(newValue, oldValue) {
    if(oldValue != undefined && newValue != undefined){
        if(oldValue.substring(0, oldValue.length - 1) == newValue){
          $scope.data = "";
        }
    }
  });

演示版

我认为在需要快速输入相似数字(可能基于默认值)但又需要快速重置输入字段的应用程序中,这很有意义。 这是一个小指令:

angular.module('myApp').directive('clearOnBackspace', function() {
  return {
    restrict: 'A',
    link: function(scope, element, attrs) {
      var length = attrs.clearOnBackspace || 9;
      element.on('keydown', function(e) {
        var key = e.keyCode || e.charCode;
        if (key == 8 && element[0].value.length == length) element[0].value = ''
      })
    }
  }
});
<input type="text" clear-on-backspace>  <!-- clear on 9th letter, the default -->
<input type="text" clear-on-backspace="5"> <!-- clear on 5th letter -->

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM