2013-03-13 1 views
1

jQuery를 사용하여 Sinatra 앱에 양식을 제출하려하지만 AJAX를 통해 게시 할 때 Sinatra 앱에 빈 페이지가 표시됩니다. 동일한 페이지에 머물러 있고 자바 스크립트에서 지정한 내용을 업데이트하고 싶습니다. 여기POST에서 리디렉션하지 않고 Sinatra 및 jQuery 사용

post '/register' do 
    register(params) 
end 
get '/register' do 
    haml :register 
end 

그리고 HAML 파일에 내 자바 스크립트입니다 :

:javascript 
     $(function() { 
       $("button#submit").click(function(){ 
         $.ajax({ 
           type: "POST", 
           url: "/register", 
           data: $('form.register').serialize(), 
           success: function(){ 
             $("#message").html("Successfully registered") 
           }, 
           error: function(){ 
             $("#message").html("Not Successful") 
           } 
         }); 
       }); 
     }); 
+0

렌더링 된 HTML은 무엇입니까? – Strelok

+0

Ajax 호출이 페이지를 리디렉션하지 않습니다. 제출할 버튼 유형을 설정 했습니까? – texasbruce

답변

5

이 시도는,

$(function() { 
    $("form#the_id").submit(function(e){ 
    e.preventDefault(); 

    $.ajax({ 
     type: "POST", 
     url: "/register", 
     data: $('form.register').serialize(), 
     success: function(){ 
     $("#message").html("Successfully registered") 
     }, 
     error: function(){ 
     $("#message").html("Not Successful") 
     } 
    }); 
    }); 
}); 

$("form#the_id").submit(...

양식의 제출을 ​​감지 여기에 아래로 벗겨 내 코드입니다. e.preventDefault();은 양식 제출을 금지합니다. 나머지는 Ajax 요청을 제출한다.

#the_id을 양식 ID로 변경하는 것을 잊지 마십시오.

관련 문제