退格和标签不适用于Firefox

时间:2015-11-12 06:25:34

标签: angularjs

Html文件

ArrayList

自定义指令

 <input type="text" reg-ex-input reg-ex="^[a-zA-Z\t]+$"  name="name" class="form-control" ng-model="module.mod_name" >

Tab和退格不适用于firefox .....对于其他浏览器它工作正常。可能是firefox认为tab和退格作为特殊字符...那么我现在应该怎么做

1 个答案:

答案 0 :(得分:4)

你是对的,Firefox正在触发Tab和Backspace的keypress事件,而Chrome(至少)不是。

您可以将link功能更改为以下内容:

link: function(scope, element, attrs){
  element.bind('keypress', function (event) {
    var regex = new RegExp(attrs.regEx);
    var charCode = !event.charCode ? event.which : event.charCode;
    // check for tab & backspace for Firefox:
    if ([0, 8].indexOf(charCode) !== -1) return;
    var key = String.fromCharCode(charCode);
    if (!regex.test(key)) {
      event.preventDefault();
      return false;
    }
  });
}

See it working at Plunker.