$ setValidity를 사용하여 양식의 유효성을 설정하는 데 사용되는 valid-number
이라는 유효성 검사 명령이 있습니다.이 값은 지시문이 적용된 입력 상자에 입력 한 모든 텍스트 값에 유효합니다 특성으로.지시문을 사용하여 Angularjs 초기 양식 유효성 검사
html로는 또한 유효성 검사와 같은 트리거하고 값을 입력하면 잘못된 clsss에 CSS를 설정합니다, 그러나
angular.module('test',[]).directive('validNumber',function(){
return{
require: "ngModel",
link: function(scope, elm, attrs, ctrl){
var regex=/\d/;
ctrl.$parsers.unshift(function(viewValue){
var floatValue = parseFloat(viewValue);
if(regex.test(viewValue)){
ctrl.$setValidity('validNumber',true);
}
else{
ctrl.$setValidity('validNumber',false);
}
return viewValue;
});
}
};
});
를 따를 때이 지침은
<form name="numberForm">
<input name="amount" type="text" ng-model="amount" required valid-number /></form>
입니다 예를 들어 내가 $scope.amount = 'not a number'
으로 설정하면 입력 상자에 지시문이 적용되었지만 기쁨이 없을 것으로 예상됩니다. 예를 들어 페이지가 처음로드 될 때 상자가 초기화됩니다. not a number
을 유효하지 않은 것으로 강조 표시하려면 지시문을 트리거하는 입력 내용을 변경해야합니다.
<input>
이 초기화 된 상태에서 지침이 적용되는지 어떻게 확인할 수 있습니까?
전체 코드 예제는 여기에 있습니다.
이 큰했다. – GrahamB
정말 위대한 글이며 $ parsers 및 $ formatters와 같은 중요한 세부 정보를 강조하고 있습니다. – Tobias
복잡한 교차 필드 검증에 들어가기 만하면이 게시물은 하루를 저장하거나 하루를 몇 분의 heh로 바 꾸었습니다! – bchesley