2016-09-15 5 views
0

각도 1.1.1이오니아을 사용하여 양식의 유효성 검사를 구현하려고합니다.각도 검증 (필수 입력란이 비어있는 경우 컨트롤러에 연결할 수 없음)

많은 "wallet"이 있으며 사용자는 각 "wallet"에 새로운 "value"를 전송해야합니다. 지갑의 지정된 이전 값도 있습니다. 유효성 검사는 모든 입력 필드가 채워 졌는지와 새 값이 이전 값보다 큰지 여부를 확인해야합니다.

내 양식 (index.html을) : 그것은 항상 보여주는 결과

<form name="myForm" ng-submit="sendValues(wallets)" ng-controller="valuesCtrl"> 
    <div class="row" ng-repeat="wallet in wallets"> 
    <div class="col item item-input-inset"> 
     <label class="item-input-wrapper item-text-wrap"> 
     <input name="wallet_{{wallet.id}}" type="number" ng-model="wallet.value" type="text" required/> 
     </label> 
     <span ng-show="myForm.wallet_{{item.id}}.$error.required">!!!</span> 
    </div>    
    <div class="col item">{{ wallet.previous }}</div>  
    </div> 
    <button class="button" type="submit">Submit</button> 
</form> 

"!!!" 사용자가 양식을 아직 제출하지 않은 경우에도 빈 입력에 대한 오류. 컨트롤러에서 $scope.myForm.submitted=true;을 사용하려고했지만 문제는 입니다. 모든 필드가 기입 된 경우에만 컨트롤러에 도달합니다..

내 컨트롤러 (values.js) : 모든 필드는 정보와 있습니다하지 않으면 내가 디버거 창을 볼 수없는 이유

'Use Strict'; 
angular.module('App') 

.controller('valuesCtrl', function($scope, $localStorage, UserService, $state) { 
    $scope.sendValues = function(wallets){ 
     debugger; 
     ... 
}) 

사람이 나를 알아 내기 위해 도와 드릴까요? 사용자 정의 유효성 검사를 수행하는 방법을 제안 할 수 있습니까? (새로운 값은 이전보다 커야 함)

답변

1

결과적으로 항상 "!!!"이 표시됩니다. 사용자가 양식을 아직 제출하지 않은 경우에도 빈 입력에 대한 오류가 있습니까?

귀하의 ng-show

ng-show="myForm.$submitted==true && myForm.wallet_{{item.id}}.$error.required" 

해야하며, 양식은 당신이 그렇지 않으면 기본 HTML 유효성 검사를 할 것입니다 지정 유효성 검사를

<form name="myForm" ng-submit="sendValues(wallets)" novalidate> 

을 원하는 경우 novalidate 속성이 있어야합니다

$ scope.myForm.submitted = true를 사용하려고했습니다. 하지만 컨트롤러의 문제는 ng-submit는 모든 형태의 컨트롤 요소에 대한 진정한 조건 ($valid==true)에 대한 유효성을 검사하기 때문에 모든 필드가

그것을 작성하는 경우에만 컨트롤러에 도달 할 수 있습니다. 이 가득 유효한 데이터 만 $valid 플래그가 설정되어 형성되어있는 경우

true 그렇지 않으면 not.In 경우 $valid==true, 당신은

당신이

사용할 수 있습니다

을 컨트롤러 GET의 형태와 기능을 제출할 수 발사합니다
<input type="submit" ng-click="sendValues(wallets)" value="Save" /> 

당신은 확인하지 않고 양식을 제출하고 당신은 읽을 수

컨트롤러에서 유효성 검사를 수행 할 것인지부터 angular#form

+0

'''myForm을 설정할 수 없습니다.$ submit == true'''모든 필드가 존재하지 않을 때 – Zelenka

+0

'ng-submit'을 사용하지 않으려면 –

+0

고마워, 나는 'novalidate'에 대해 몰랐다. – Zelenka

관련 문제