2012-08-16 26 views
1

我在我的使用形式,我需要通過Ajax(JQuery的)提交,但是它需要從我的JavaScript遠程提交(即我不能用戶:遠程=>真正)。阿賈克斯提交無:遙控器=>真

我可以找到我的形式,我的JavaScript沒有問題:

my_form = $("#the_id_of_the_form"); 

然後創建我的Ajax請求:

$.post('hardcoded path?', function(data) { 
    // how would I serialize my parameters? 
}); 

非常感謝。

回答

2

jquery api

例子:發送表單數據使用設g阿賈克斯請求

$.post("test.php", $("#testform").serialize()); 

在你的情況下,它可以是這樣的。

$('#your_form').submit(function(event) { 
    event.preventDefault(); 
    $.ajax({ 
    type: "POST", 
    url: $(this).attr('action'), 
    data: $(this).serialize(), 
    dataType: "JSON" 
    }); 
}); 
+0

作品的享受!謝謝! – alexs333 2012-08-17 03:34:19

0

使用jQuery(<FORM_ID>).ajaxSubmit

你的表格應該像下面

<%= form_for @user,:url=>{:controller=>:logins, :action => 'sign_up'}, :html=>{ :onSubmit => "return checkSignupValidation()",:id=>"signup_form"} do |f|%> 

<% end %> 

和你的js

function checkSignupValidation() 
    { 
     jQuery('#signup_form').ajaxSubmit({ 
     url:"/logins/sign_up", 
     iframe: true, 
     dataType: 'script', 
     success: function(data){ 
      //console.log(data) 
     } 
     }); 
    } 
0

儘量不要使用.post的$或者$不用彷徨,不靈活,調試和重構肇事/

$.ajax({ 
    url: 'only_hardcore_path/' + my_form.serialize(), 
    type: 'POST' 
}); 

或可能是:

$.ajax({ 
    url: 'only_hardcore_path/', 
    type: 'POST', 
    data: my_form.serialize() 
}); 
0

待辦事項沒有硬編碼的網址,而是使用URL作爲存儲形式。

你可以做到這一點,如下所示:

$("#the_id_of_the_form").submit(function() { 
    $.post({ 
     url: $(this).attr('action'), 
     data: $(this).serialize() 
    }); 
}); 

希望這有助於。