2017-08-02 78 views
1

我是Ruby on Rails的新手,我試圖使form_for觸發一個jQuery函數。在Ruby on Rails中使用form_for觸發jQuery

我對錶單代碼是下一個:

<%= form_for @company, :url => create_paying_registration_path(:industry => apt(@plan.industry, :industries), :plan => @plan.name), 
    :html => {:id => "card-form"} do |f| %> 
    <%= render 'form_carrier', :company => @company, :plan => @plan, :f => f %> 
<% end %> 

和jQuery:

jQuery ($) -> 
$("#card-form").submit -> 
$form = $(this) 
$form.find("button").prop "disabled", true 
Conekta.token.create tokenParams, conektaSuccessResponseHandler, conektaErrorResponseHandler 
false 
return 

形式不觸發jQuery的功能,但如果我使用一個form_tag,它觸發了jQuery功能:

<%= form_tag('/checkouts/charge', id: 'card-form') do %> 

我的問題是,我在做什麼錯誤form_for? 我需要觸發jQuery,然後重定向到窗體的路徑。

在此先感謝。

+0

對我來說,使用jQuery的語法看起來很奇怪。然而,如果你將這個應用在一個純html表單上,你的jQuery代碼是否可以工作,如本地示例測試? – reporter

+0

對不起,我忘了提及,jQuery寫在'coffeescript'代碼工作時,我使用form_tag和純html表單,但不適用於form_for – rockar06

+0

您是否嘗試使用onSubmit與form_for? –

回答

0

將onsubmit到的form_for

form_for @paintings, :url => "/paintings/handlelike", :method => "post", :remote => true, :html => {:id => "submit_form_id",:onsubmit => "yourFunction();", :name => 'form'} do |f| 

而在你的JS:

yourFunction() { 
$form = ... 
... 
}