2016-07-26 3 views
-1

특정 입력이 비어 있거나 유효성 검사를하지 않는 경우 Jquery 검사로 Js 함수를 작성합니다. 여기에 입력이 비어 아닌지 확인하는 기능입니다 :jquery가있는 JS 함수는 항상 정의되지 않음을 반환합니다.

function isValid(elements){ 
     var validation = false 
     elements.each(function() { 
     if ($(this).val().length > 0){ 
      validation = true 
     } 
     else { 
      validation 
     } 
     }); 
     validation 
    } 

그러나 내 기능을 검증 변수에 포함하도록되어 부울 값을 undefined를 반환 결코 무엇 이건?

함수가 true 또는 false를 반환하려면 어떻게해야합니까?

+0

요소에 대해 무엇을 전달하고 있습니까? –

+3

함수에서 아무 것도 반환하지 않습니다. –

+0

'validation' 라인은 무엇을하고 있다고 생각하십니까? 당신의 논리에도 결함이 있습니다. 유효성 검사는 당신이 원하는 것을하지 않을 가능성이 가장 큽니다. – epascarello

답변

2

적어도 하나의 요소가 비어 있으면 false를 반환하고, 그렇지 않으면 true를 반환 할 수 있습니다.

function isValid(elements){ 
    var validation = true; 

    elements.each(function() { 
    if ($(this).val().trim().length === 0){ 
     validation = false; 
    } 
    }); 

    return validation; 
} 
+0

'each '가 false를 반환합니다. 깨진 문으로 동작합니다 –

+0

또한'trim()'을 길이 검사. 그렇지 않으면 공백으로 필드 채우기가 유효합니다. –

2

사용자의 함수 isValid()이 JavaScript에서 예상되는 동작이므로 정의되지 않은 값을 반환합니다. 함수가 하나의 반환 값을 지정하지 않고 함수 isValid()에 반환 값이없는 경우 undefined는 "기본"반환 값입니다.

체크 this answer.

2

당신은 Array#some를 사용하여 아래와 같이

function isValid(elements) { 
return !Array.from(elements).some(function(itm){ itm.value.trim().length == 0 }); 
} 

을 코드를 할 수있는 당신은 전혀 가치 undefined 반환됩니다 반환 기본 수단 기능, 아무것도 반환된다.

관련 문제