2013-03-13 27 views
1

我想使用jQuery將表單提交給我的Sinatra應用程序,但是當通過AJAX發佈時,Sinatra應用程序顯示空白頁面。我希望它保持在同一頁面上,並更新我在JavaScript中指定的內容。這裏是我的代碼,精簡:在不重定向的情況下使用Sinatra和jQuery

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

這裏是我在HAML文件中的javascript:

: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 2013-03-13 05:36:37

+0

沒有Ajax調用不會重定向頁面。您是否設置了要提交的按鈕類型? – texasbruce 2013-03-13 07:49:48

回答

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。

相關問題