2012-02-23 23 views
1

我试图提交表单这样一个Ruby on Rails的网站:如何在每'x'秒自动提交一个rails 3.1远程表单?

var autosave = window.setInterval("autosaveForm()", 5000); 

function autosaveForm() { 
    $("#myForm").trigger("submit.rails"); 
} 

它确实提出每5秒我的形式,但是,它不更新的形式发送的参数。例如,如果我开始输入属于表单的textarea,当它自动提交时,它不会发送我刚输入的参数的一部分,它只会发送textarea的默认值或任何它在我第一次加载页面。

如果我不清楚或者您需要更多数据,请告诉我。

而且,是的,我的形式确有:提前远程=> '真'

感谢。

+0

会发生什么,如果你触发定期提交功能? '$( “#myForm会”)。提交()'。它仍然会被js捕获(与输入密钥起作用相同),并且可能会再次解析数据 – 2012-02-23 03:52:57

+0

这与我在原始问题中所描述的基本相同。 – 2012-02-23 18:14:56

+0

这很奇怪。如果您手动重新提交表单,它不会发送新数据? – 2012-02-23 20:08:38

回答

1

您可以使用periodically_call_remote

为前

<%= periodically_call_remote(
:url => url, 
:frequency => 60, # seconds 
:update => 'div id') %> 
+0

我对此感到兴奋,但这是Rails 3的弃用。 – 2012-02-23 18:14:24

0

OK,你可以尝试一下本作轨道3

$(document).ready(
function(){ 
    setInterval(function(){ 
    $('#mydiv').load('/controller/action'); 
    }, 1000); 
});