2017-05-13 1 views
2

사용자 입력 세부 사항을 DB에 제출하기 전에 유효성 검사를 원합니다. 나는 폼의 탭과 하나의 공통된 별도의 저장 버튼을 가지고 있는데, 클릭 버튼을 클릭하면 저장 기능이 호출된다. 사용자가 버튼을 저장하고 그것을 서버에 데이터를 저장 한 엔드 포인트 전화를 울부 짖는 소리 쳤을 때 javaScript : 반환 false 후에도 행이 실행 중입니다.

$scope.saveFn = function() { 
    $("#active_form_id") 
     .find("input,textarea,select") 
     .each(function (e) { 
      var value = $(this).val(); 
      var id = $(this).prop("id"); 

      if (value == null || value == "") { 
       return false; 
       //Abort things here 
      } 
     }); 

    alert("After validation check"); 
} 

호출했다. 내 문제는 return false 문이 실행 중일 때도입니다. 그렇다면 내 끝점도 호출되고 경고 아래에 경고가 실행됩니다.

경고 문 실행을 어떻게 중지 할 수 있습니까?

+0

if 문이 true입니까? –

+0

당신이 게시 한 코드는 false를 반환 한 후에 아무것도 표시하지 않습니다. 클로저 내의 return 문 다음에 * 절대 * 코드가 실행되지 않습니다. – Utkanos

+3

'alert()'는'each()'함수의 외부에 있으므로 항상 실행됩니다 ..'return false;''$ scope.saveFn = function() { 또한 경고가 먼저 실행되고'each() '가 작동을 시작합니다. –

답변

1

이 코드를 사용해보십시오. 그 중 하나의 전역 변수를 설정하고 유효성을 false로 설정하면 해당 변수를 false로 설정합니다.

var IsValid=true; 
$scope.saveFn = function() { 
    $("#active_form_id") 
    .find("input,textarea,select") 
    .each(function (e) { 
     var value = $(this).val(); 
     var id = $(this).prop("id"); 

     if (value == null || value == "") { 
      IsValid=false; 
      return false; 
      //Abort things here 
     } 
    }); 
    if(IsValid){ 
     alert("After validation check"); 
    } 
} 
+1

이것은 내가이 순간에 찾고있는 것이다. –

관련 문제