2010-05-27 3 views
3

jquery를 사용할 때 파일을 업로드하는 데 문제가 있습니다.파일 업로드 형식의 게시 양식

양식에 다음 HTML이 있습니다.

<fieldset> 
    <ul> 
    <li> 
     <div class="field"><input size="35" type="file" 
          name="formFile" id="formFile"/></div> 
    </li> 
    <li> 
     <div class="field"><input size="35" type="text" 
          name="formFileName" id="formFileName" /></div> 
    </li> 
    </ul> 
</fieldset> 

내가 데이터를 게시하고 받았다 데이터가 일부 자바 스크립트가 포함 된 경우 내가

$('#myForm').ajaxForm(를 사용하고 데이터를 게시하려면 자바 스크립트가 인식되지 않습니다.

데이터 수신시 javscriptcode가 실행되기를 기대했지만 일찍 발생합니다. 결과는 $ 또는 jquery를 찾을 수 없음을 나타냅니다.

input type = file 요소에서 name 속성을 제거하면 오류는 발생하지 않지만 올바른 해결책은 아닙니다.

어떻게 될 수 있습니까?

+0

사용하신 JavaScript 코드를 게시하십시오. 또한, 힌트 : jQuery 같은 간단한 물건을 사용하지 마십시오; 단지 더 혼란과 문제를 야기합니다. –

+0

javacript 코드에서 가장 중요한 부분은 jQuery (form) .ajaxSubmit ({ target : '#grid .viewport_panel_body'}); } }); 이 경우 jquery 사용을 피할 수 없습니다. – Jan

답변

1

분명히 임베디드 JS가 콜백 함수의 일부인지 확인해야합니다.

 
$('#myForm').ajaxForm(function() { 
    //Do your JS execution 
}); 

개인적으로 추상화 된 $ 갔지()의 팬이, $의 .post (입니다). 등 $ ajaxForm(), 그들이 $ 아약스의 기능을 너무 많이 제거하기 때문에() 행동 양식.

ajaxSubmit() 메소드를 사용하는 것이 중요한 경우 다른 $ .ajax 매개 변수가 필요하므로 async : false로 설정하고 성공/오류 콜백을 설정해야합니다.

 
// attach handler to form's submit event 
$('#myFormId').submit(function() { 
    // submit the form 
    $(this).ajaxSubmit({ 
         success: function(result){ callbackFunction(result); } 
         ,error: function(msg,XMLStatus,err){ errFunction(msg,XMLStatus,err); } 
         }); 
    // return false to prevent normal browser submit and page navigation 
    return false; 
}); 

이렇게하면 문제가 해결되기를 바랍니다.