2012-01-12 2 views
4

jQuery를 사용하여 하나 이상의 필드에 선택된 파일이 있는지 확인하려면 어떻게합니까?적어도 하나의 파일 입력이 jQuery로 완료되었는지 확인

<form action="b.php"> 
    <input type="file" name="file[]"> 
    <input type="file" name="file[]"> 
    <input type="file" name="file[]"> 
    <input type="file" name="file[]"> 
    <input type="submit" value="Value"> 
</form> 
+2

제목에서 한 가지만 물어보고 텍스트에서 한 가지만 묻습니다. – kontur

+0

나는 그가 (입력 요소와 함께) 파일 유형의 유효성 검사를 의미한다고 생각합니다. –

답변

3

이 작업을 수행하려면 map()을 사용하여 모든 유효한 파일 input 요소의 배열을 빌드 할 수 있습니다. 그런 다음이 배열에 요소가 있는지 확인할 수 있습니다. 그렇다면 적어도 하나의 입력이 유효하고, 비어 있으면 아무 것도 선택되지 않습니다. 이 시도 :

var validFields = $('input[type="file"]').map(function() { 
    if ($(this).val() != "") { 
     return $(this); 
    } 
}).get();  

if (validFields.length) { 
    console.log("Form is valid"); 
} else { 
    console.log("Form is not valid"); 
} 

Example fiddle

+0

완벽한 !!! +1 :) – SagarPPanchal

0

당신은 값이 설정되어 있는지 확인하는 jQuery의 .val() 방법을 사용할 수 있지만이 파일 입력 유형에 대한 작동하는지 모르겠어요 : 여기 내 양식이다.

그러나 자바 스크립트를 사용하는 경우 페이지를 탐색하는 사람이 유효성 검사를 사용 중지 할 수 있으므로 파일의 유효성을 검사하려면 서버 측 언어를 사용해야합니다. file[] 어레이를 반복하여 비어 있는지 확인하십시오.

실제로 훨씬 안전하고 쉽습니다.

0

당신이 물론 누군가가 당신의 입력 요소에 파일을 추가했습니다 여부를 확인하기 위해 멋진 트릭이있다, 서버 측 유효성 검사를 필요로하는 동안.

이제 파일 입력 요소에 대한 액세스가 보안상의 이유로 제한되어 있으므로 예를 들어 변경할 수 없습니다. 그러나 다음을 점검 할 수 있습니다.

if($('input[type="file"]').val() != "") { 
    alert("a file is selected") 
} 
관련 문제