2015-08-24 43 views
0

我有一个窗体,通过部分呈现。当表单中用于选择的可用字段通过此表单中的提交事件进行更改或以其他形式的删除事件进行更改时,此表单需要重新绘制。无论是什么原因,当表单重新绘制时,都没有检测到事件,在获取表单重绘/呈现之前,我可以在控制台输出中注册提交按钮。导轨部分不生成事件

生成日志消息到控制台的代码 - 一直运行,直到表单动态呈现。

$(document).ready(function(){ 
    console.log("On Ready") 
    $(document).on('submit', '.ioConnect', function(event){ 
    console.log("Button Clicked"); 
    event.preventDefault(); 
    }) 
}) 

这是在部分_links.html.erb所呈现的形式

<table style="border: 1px solid;">  
    <tr>  
     <th>Create New Link</th>  
    </tr> 

    <% @vehicle_configuration.recursive_outputs_array.each do |output| %>  
     <tr>  
     <%= form_for InputToOutputLink.new, :html => { class: 'ioConnect'} do |f| %> 
      <td>Link </td> 
      <td><%= output.friendly_name %><%= f.hidden_field :output_id, {:value => output.id} %></td> 
      <td> to </td> 
      <td><%= f.collection_select :input_id, @vehicle_configuration.unused_inputs_hash_for_output_type(output), :first, :last , { class: 'outputConnectionSelection' } %></td> 
      <td> 
      <%= f.hidden_field :vehicle_configuration_id, {:value => @vehicle_configuration.id} %> 
      <%= f.submit "Connect", :html => { class: 'ioConnectSubmit'} %> 
      </td> 
     <% end %> 
     </tr> 
    <% end %> 
</table> 

这是使任一上的链路的创建或删除被重绘的形式线

$("#create-links-container").html("<%= j(render('/vehicle_designer/links')).html_safe %>"); 

我相信它与被重绘的表单和需要重新连接事件有关,但我不知道如何做到这一点。我认为,通过听一个没有被重绘的父元素的提交会起作用,这是我在上面显示的第一个代码片段中所做的。

我错过了什么或做错了什么?

回答

0

尝试事件,如“AJAX:之前”,“AJAX:成功”,......因为表格由jQuery的UJS提交 https://github.com/rails/jquery-ujs/wiki/ajax

+0

感谢您的想法,但我看不出这是怎么回事帮助,因为jquery-ujs在部分重绘后似乎没有再次发射。我试图捕获控制台中的按钮单击的唯一原因是为了证明它是否正常工作。查看日志时,当我在form_for中允许remote:true选项时,没有任何内容被提交到服务器 –