0

여러분 모두 잘될 수 있기를 바랍니다.angularJS가 지시문에서 작동하지 않습니다.

나는 angularJS의 속성 (비 유효성 검사에 대한)이 필요한 input = "text"를 가지고 있습니다.

아래의 js 코드는 사용자가 숫자 만 입력하도록하는 텍스트의 지시어입니다.

기본적으로 경고가 켜짐으로 설정되어 있습니다. 이제 문제는 텍스트 상자에 숫자를 제외한 모든 키워드를 입력하면 문자를 입력하지 않지만 필요한 오류가 사라집니다 !!!!!! 그 결과는 값이 비어 있고 필수 오류 메시지가 아닌 텍스트 상자입니다 !!!

angular.module('league').directive('numbersOnly', function() { 
 
    return { 
 
     require: 'ngModel', 
 
     link: function (scope, element, attr, ngModelCtrl) { 
 
      function fromUser(text) { 
 
       if (text) { 
 
        var transformedInput = text.replace(/[^0-9]/g, ''); 
 

 
        if (transformedInput !== text) { 
 
         ngModelCtrl.$setViewValue(transformedInput); 
 
         ngModelCtrl.$render(); 
 
        } 
 
        return transformedInput; 
 
       } 
 
       return undefined; 
 
      }    
 
      ngModelCtrl.$parsers.push(fromUser); 
 
     } 
 
    }; 
 
}); 
 

 

 

 
<input type="text" class="CreateTxt" ng-model="league.name" name="leagueName" required /> 
 
<span ng-show="myForm.leagueName.$error.required" style="color:red">Its required...</span>

답변

1

당신이 = "숫자"형식을 사용하여와 같은 동작을 달성 할 수 있을까?

당신은

return undefined;

오류가 필요하지 않은 구문 분석 오류가 발생합니다 그렇지 않으면 각

return null; 

에 변경해야합니다. 따라서 폴백 값에 대한 선택을 제외하고 거의 모든 것을 훌륭하게 수행했습니다.

+0

감사합니다. 작동합니다. –

+0

사용자가 'e'를 입력 할 수 있고 다른 문제가 있기 때문에 type = number를 사용하고 싶지 않습니다. –

관련 문제