2014-04-27 2 views
0

파일을 업로드하려고합니다. 사용자가 파일을 선택하기 전에 제출 버튼을 클릭하면 경고가 나타납니다. 파일이 이미 선택되어 있으면 submit 값 버튼을 Updating...으로 변경해야합니다.이 경우에는 change() 메서드를 사용했지만 제대로 작동하지 않습니다.jquery .change() 메서드가 제대로 작동하지 않습니다.

javascript 파일 :

$(document).ready(function() 
    { 
     var file_name=''; 
     //for checking whether the file queue contain files or not 
     $('#upload').click(function() 
     { 
     $('#file').live('change',function(){ 
      for (var i = 0; i < this.files.length; i++) 
      { 
      file_name = this.files[i].name; 
      //alert(file_name); 
      if(file_name !== null && file_name !== undefined) 
      { 
       $('#upload').attr('value','Updating..'); 
      } 
      else 
      { 
       alert('error'); 
      } 
      }//end for loop 
     }); 
    }); 
}); 

html: 

<form id='file-form' action="" method="post" enctype="multipart/form-data"> 
<input type="file" name="file" id="file" ><br> 
<input type="button" name="upload" id='upload' value="Upload file"> 
</form> 

저를 도와주세요.

+0

놓습니다'change' 이벤트 핸들러를 :

if(file_name !== null && file_name !== undefined) 

당신은 아마 찾고 있습니다. 'change'이벤트는 업로드 버튼을 클릭 할 때 핸들러를 바인딩합니다. –

+0

.live는 현재 사용되지 않습니다. 사용 가능한 파일은 – underscore

+0

입니다. @ samitha – Techy

답변

0

JQuery 설명서에 따라 .live는 메소드에서 사용되지 않습니다.

$('#file').on('change',function(){ 
     //your code 
    }); 

이 하나

0

당신은 ''에 FILE_NAME을 초기화하려고합니다. 그러나 귀하의 비교에서 그것이 null인지 또는 정의되지 않았는지 여부를 확인하는 중입니다. 어느 것도 설정되지 않은 경우 true가 아닙니다.

대신에 : 업로드`click` 이벤트 핸들러에서

if (file_name !== '') 
관련 문제