2009-10-15 77 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