2017-08-02 35 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 = ... 
... 
}