2011-03-09 4 views
0

고유 ID가있는 두 개의 양식이 포함 된 페이지가 있습니다. 양식 중 하나가 제출 될 때 페이지를 페이드 아웃해야합니다. 그러나 작동하지 않습니다.jQuery .submit()이 아무리 실행되지 않습니다

다음은 코드에서 볼 수 있듯이,이 경고를 표시해야하지만 그렇지 않은, 그리고 심지어 페이지를 퇴색하지 않는 코드

$(document).ready(function(){ 
     $('#container').fadeOut(0); 
     $('#container').fadeIn(500); 
    }); 

    $('form').submit(function(){ 
     alert("Hello."); 
     $('#container').fadeOut(500); 
    }); 

입니다. 내 양식에 읽기 전용으로 설정된 텍스트 입력과 제출 버튼이 있습니다.

미리 감사드립니다.

+0

또는 사용자가 페이지를 떠날 때 페이드 아웃하는 방법이 있는지 알고 싶습니다. –

답변

1

이 시도 :

$(document).ready(function(){ 
    $('#container').fadeOut(0); 
    $('#container').fadeIn(500); 

    $('form').submit(function(e){ 
     e.preventDefault(); 
     var form = this; 
     $('#container').fadeOut(500, function() { 
      form.submit(); 
     });  
    }); 
}); 

는 외부 문서의 준비 바인딩 제출하고이 실행되었을 때 아마 양식 태그를 찾을 수 없습니다.

jsfiddle 예 - 당신이 DOM 함수를 등록하기 전에 준비가 확신 할 수 있도록 http://jsfiddle.net/KbaG3/

+0

감사하지만 페이지가 여전히 사라지지 않습니다. fadeOut이 무시되고 브라우저가 바로 다음 페이지로 건너 뜁니다. –

+0

답변을 업데이트하고 원하는 작업을 수행하기 위해 jsfiddle 예제를 추가했습니다. 이제 제출 이벤트를 중지 한 다음 컨테이너를 페이드 아웃 한 후 수동으로 양식을 제출합니다. –

0

당신은 아마 문서 준비 함수 내부에 제출 이벤트 레지스터 기능을 이동해야합니다.

도움이되지 않는 경우 실행을 중단시킬 수있는 페이지에 자바 스크립트 오류가 발생했는지 확인하십시오. 당신이 이벤트를 바인딩 할 때

이 페이지의 하단에 JS를 포함하지 않는 한
0

, 당신은 $(document).ready() 블록 내부에

$(document).ready(function(){ 
     $('#container').fadeOut(0); 
     $('#container').fadeIn(500); 


    $('form').submit(function(){ 
     alert("Hello."); 
     $('#container').fadeOut(500); 
    }); 
}); 

이 당신의 요소가 존재하지 않기 때문에를 $(form).... 코드를 이동해야합니다 이

0

시도 : 내가 생각

jQuery(function($){ 
    $('#container').hide().fadeIn(500); 

    $('form').submit(function(){ 
     alert("Hello."); 
     $('#container').fadeOut(500); 
    }); 
}); 

또한 청소기 코드없이 충돌 증거입니다.

관련 문제