2013-07-10 2 views
0

한 페이지에 여러 개의 업로드 버튼이 있어야합니다.. 각 업로드 버튼은 항목 옆에 있으며 사용자는 특정 항목에 대한 이미지를 업로드 할 수 있습니다.페이지의 여러 업로드 버튼 : 첫 번째 버튼 만 작동

은 현재 페이지 의 상단에 첫 번째 업로드 버튼를 작동 파일을 선택할 수 있습니다. 다른 것들은 작동하지 않습니다. : 클릭하면 아무 일도 일어나지 않습니다.

<div class="upload_icon" > 
    <form action="upload_extra.php" method="POST" enctype="multipart/form-data"> 
    <input id="upload" type="file" name="image" style="display:none" /> 
    <input name="postid" type="hidden" /> 
    <img id="upload_img" src="/images/uploadicon.png"> 
    </form> 
</div> 

<script type="text/javascript"> 
    $('#upload_img').click(function(){ 
    $('#upload').click(); 
    }); 
</script> 

이 동작을 수정하려면 어떻게해야합니까?

+0

은 왜) (파일 입력을 .click 하시겠습니까? 그게 아무것도하지 않는 AFAIK ... – dandavis

+0

아이콘을 클릭하면 파일을 탐색/선택할 수 있기를 원합니다. –

+0

그러면 마우스 또는 키보드로 입력을 클릭해야하므로 jquery 명령이 작동하지 않습니다. 크롬에서는 입력을 가리키는

답변

3

ID는 고유해야합니다. 동일한 ID를 가진 항목이 여러 개있을 때 jQuery는 첫 번째 항목 만 선택하므로 클릭 핸들러는 하나의 이미지에만 적용됩니다. ID 대신 클래스를 사용해보십시오.

<div class="upload_icon" > 
    <form action="upload_extra.php" method="POST" enctype="multipart/form-data"> 
    <input class="upload" type="file" name="image" style="display:none" /> 
    <input name="postid" type="hidden" /> 
    <img class="upload_img" src="/images/uploadicon.png"> 
    </form> 
</div> 

<script type="text/javascript"> 
    $(function() { 
     $('.upload_img').click(function(){ 
      $(this).parent().find('.upload').click(); 
     }); 
    }); 
</script> 

Working Demo

+1

적절한 요소를 클릭하려면'$ (this) .siblings (". upload")'이 필요합니다. – Barmar

+1

사실이 솔루션은 더 큰 문제가 될 것입니다! 같은 양식에있는 버튼이 아닌 모든 버튼을 클릭하십시오! – epascarello

+0

k, 충분합니다. – iConnor

관련 문제