2009-10-15 43 views
0

我有一个form_remote完美的工作表单货币。我想要做的唯一改变是取消选择框的提交按钮。所以他们只需点击正确的货币并提交ajax请求。rails form_remote_tag并选择提交

<%= collection_select(:currency, :set, Currency.find(:all, :conditions => 'primary_source = "ECB"'), :code, :pretty_name, { :selected => session[:currency] }, { :onchange => "$('currency').submit()" }) %> 

的工作电平变化的选择,但不是使用远程AJAX请求时,它refeshes整个页面...只是一个元素,而不是,我怎么能启动remote_tag,使其做同样的事情点击提交将?

回答

1

您遇到的问题是Rails在窗体的onsubmit属性中将remote_form_for作为内联Ajax方法实现。问题在于提交事件仅在用户实际提交表单时触发,而不是通过调用$('form')。submit()。其实我相信一些浏览器可能会触发事件,但其他浏览器则不会。无论如何,这在你发现的一般情况下不起作用。

一个可能的解决方法,我只在Firefox 3.5中测试过,所以你的里程可能会有所不同,直接调用该属性作为一个函数。所以里面的:平变化的说:

$('currency').onsubmit() 

如果不工作,你可能需要看看生成的源代码,并拉动AJAX请求了onsubmit属性,进入,你可以直接调用一个独立的方法。

据我所知,没有可靠的触发本地事件的跨浏览器方式。

+0

适用于firefox,chrome和safari ...现在已经够用了。谢谢! – holden 2009-10-15 18:00:19