programing

j입력유형="파일"에 대한 쿼리변경방법

muds 2023. 10. 3. 11:37
반응형

j입력유형="파일"에 대한 쿼리변경방법

단순하고 우아한 API로 jQuery를 100% 수용하려고 하는데 API와 스트레이트업 HTML이 일치하지 않아 도저히 알 수가 없습니다.

파일 입력 값이 변경될 때마다 실행하고 싶은 AJAX 파일 업로더 스크립트(정확하게 작동하는)가 있습니다.제 작업 코드는 다음과 같습니다.

<input type="file" size="45" name="imageFile" id="imageFile" onchange="uploadFile()">

내가 변환할 때.onchangejQuery 구현에 대한 이벤트:

$('#imageFile').change(function(){ uploadFile(); });

결과는 같지 않습니다.위드 더onchange책임을 돌리다uploadFile()function은 값이 예상대로 변경될 때마다 호출됩니다.하지만 jQuery API를 사용하면.change()event handler, 이벤트는 값이 처음으로 변경될 때만 발생합니다.그 이후의 값 변경은 무시됩니다.이것은 제가 보기에는 잘못된 것 같지만 분명히 이것이 jQuery의 감독일 수는 없겠죠?

동일한 문제에 직면한 사람이 있습니까? 위에서 설명한 문제 이외에 해결 방법이나 해결 방법이 있습니까?

ajax 업로더가 입력 요소를 새로 고치고 있습니까? 그렇다면 .live () 메서드를 사용하는 것을 고려해야 합니다.

 $('#imageFile').live('change', function(){ uploadFile(); });

업데이트:

jQuery 1.7+ 부터 지금 사용하셔야 합니다.on()

 $(parent_element_selector_here or document ).on('change','#imageFile' , function(){ uploadFile(); });

jQuery 1.7부터는 .live() 메서드가 사용되지 않습니다..on()을 사용하여 이벤트 핸들러를 연결합니다.이전 버전의 jQuery 사용자는 .live()보다 .delegate()를 우선하여 사용해야 합니다.참조: http://api.jquery.com/on/

$('#imageFile').on("change", function(){ uploadFile(); });

파일 입력 유형에 jQuery 이벤트 핸들러를 추가하여 IE8+를 작동시킬 수 없었습니다.나는 올드스쿨에 가서 추가해야 했습니다.onchange=""입력 태그 속성:

<input type='file' onchange='getFilename(this)'/>

function getFileName(elm) {
   var fn = $(elm).val();
   ....
}

편집:

function getFileName(elm) {
   var fn = $(elm).val();
   var filename = fn.match(/[^\\/]*$/)[0]; // remove C:\fakename
   alert(filename);
}

언급URL : https://stackoverflow.com/questions/2721250/jquery-change-method-on-input-type-file

반응형