2016-07-08 1 views
0

아래 입력 유형 번호가 있습니다. 숫자와 함께, 다른 키보드 문자를 받아들이 길 원합니다. 따라서 "null", ".", "+"및 "-"값을 허용하기 위해 ng-pattern을 사용했습니다.입력 유형 번호 + '-'부호를 허용하는 ng-keypress

또한 ng-keypress 기능이 있는데 여기서는 ----> '대시'에 대해 언급했습니다. 189, '빼기': 109. 키보드에서 '-'를 수락하는 키보드 코드입니다.

어떻게 든 '-'을 허용하지 않습니다. 나는 '-'가 허용되도록 다양한 패턴을 넣으려고했다. 그러나 그것은 doesnt한다.

<input ng-keypress="Num($event)" type="number" step=".1" ng-pattern="/^[+-]?(?:\d+\.?\d*|\d*\.?\d+)[\r\n]*$|^$/" ng-model="dataip"></> 


$scope.Num = function (event) { 
    var keys = { 
     'up': 38, 'right': 39, 'down': 40, 'left': 37, 
     'escape': 27, 'backspace': 8, 'tab': 9, 'enter': 13, 'del': 46, 
     '0': 48, '1': 49, '2': 50, '3': 51, '4': 52, '5': 53, '6': 54, '7': 55, '8': 56, '9': 57, 'dash':189, 'subtract':109 
    }; 
    for (var index in keys) { 
     if (!keys.hasOwnProperty(index)) continue; 
     if (event.charCode == keys[index] || event.keyCode == keys[index]) { 
      return; //default event 
     } 
    } 
    event.preventDefault(); 
}; 

사람은 모양과 조언을 ... 제발 수

답변

1

이 ASCII 표를보고하십시오 : enter image description here 문자 코드 (12 월 열) -에 대한 JSBin을하고있다 여기에 45

한다 : https://jsbin.com/yipigicuve/edit?html,console,output

BTW 입력 요소에 type="number"을 설정할 필요가 없습니다. --3---8438과 같은 입력을 고려하십시오. 현재 이와 같은 입력을 허용하고 있습니다. https://github.com/candreoliveira/ngMask과 같은 라이브러리를 사용하시기 바랍니다.

+0

감사합니다. csharpfolk. – Patrick