1

입력을 변경하면 양식 제출을 시작할 수 없습니다. 나는 이벤트 처리가 필요하다고 생각하지만, 나는 그것이 실제로 무엇인지를 결코 알지 못했다. 여기 함수를 제출하기 위해 jQuery 변경 함수를 바인딩하십시오.

<form action="/upload"> 
    <input type="file" name="file"> 
</form> 

내 JS입니다 : 여기

내 HTML의

$('input').change(function(e){ 
var closestForm=$(this).closest("form"); 
    closestForm.submit(function(e) { 
    closestForm.ajaxSubmit({ 
       success: function(data){ 
        console.log('form submitted successfully'); 
       } 
     }); //ajaxSubmit 
    return false; 
    }); //submit 
}); //change 

내가 AJAX를 사용하여 제출 할 싶습니다 유의하시기 바랍니다하지만 내가 다른 부분이 같은 문제가되지 않습니다 내 코드베이스의 어디에서 사용할 수 있습니까? jQuery Form pluginajaxSubmit() 아무 문제 없습니다.

생각하십니까?

답변

2

입력 변경시 제출 양식을 제출해야하므로 당신은 양식에 이벤트를 제출 필요하지 않습니다

$('input').change(function(e){ 
    var closestForm=$(this).closest("form"); 
     closestForm.ajaxSubmit({ 
        success: function(data){ 
         console.log('form submitted successfully'); 
        } 
      }); //ajaxSubmit 
     return false; 
    }); //change 
+0

- @ Shusl, 감사합니다. 불행히도 jQuery 양식 플러그인과 관련된 오류가 발생합니다. 제출 이벤트를 포함하면서 권장 사항이 있습니까? –

+1

@timpeterson. 파일 업 로더를 찾고 있다면 http://stackoverflow.com/questions/166221/how-can-i-upload-files-asynchronously-with-jquery 및 http://stackoverflow.com/questions을 참조하십시오./2302344/jquery-form-plugin-file-upload. jQuery ajax를 사용하는 것이 현명하다. – Anoop

+0

이 허용 된 대답을 읽는 모든 사람에게이 문제를 해결하는 방법에 대한 전체 지침은 내 대답도 참조하십시오. –

0
필드가 다음과 같이 채워 때까지 당신은 양식 제출을 "잠금"을 시도 할 수

: 나는 다음 내 자신의 문제를 해결

var form_locked = true; 

$("input").change(function(e){ 
    if($(this).val() == "") { 
     form_locked = true; 
    }else{ 
     form_locked = false; 
    } 
}); 

$("form").submit(function(e) { 

    // prevent default form submit 
    e.preventDefault(); 

    if(form_locked) { 
     alert("Please fill in the field!"); 
    }else{ 
     // Do your form submission stuff here 
    } 

}); 
0

오류 메시지 내가 다음과 같은 SO Q & A. jQuery form plugin - Uncaught TypeError on file upload 이끌었습니다.

내 오류 메시지는 다음과 유사했다 :

jquery.form.js:357 Uncaught TypeError: 
Object function (a,b){return new d.fn.init(a,b,g)} has no method 'handleError' 

기본적으로 최대한 빨리 내가 ​​submit() 기능을 제거하고 @Shusl 제안으로 단지 ajaxSubmit()을 사용할 수 있었던 최신 jQuery를 양식 플러그인의 js 파일을 다운로드한다.

@Shusl에게 감사의 말을 전합니다.

관련 문제