Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails中具有可变行数的用户可编辑表_Javascript_Jquery_Ruby On Rails - Fatal编程技术网

Javascript Rails中具有可变行数的用户可编辑表

Javascript Rails中具有可变行数的用户可编辑表,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我正在运行Rails 3.2.11。在学习Rails和Javascript时,我正在做一个简单的wiki项目。我要做的是在我的数据库中存储一个两列表,用户可以编辑该表的内容和行数,并使用jQuery在单击按钮时为新表行添加表单。该表存储为一个散列,其中包含每行列的散列。i、 e.{“row1”=>{“head”=>“first column/header content”,“tail”=>“second column/data content”},“row2”=>{“head”=>“first

我正在运行Rails 3.2.11。在学习Rails和Javascript时,我正在做一个简单的wiki项目。我要做的是在我的数据库中存储一个两列表,用户可以编辑该表的内容和行数,并使用jQuery在单击按钮时为新表行添加表单。该表存储为一个散列,其中包含每行列的散列。i、 e.
{“row1”=>{“head”=>“first column/header content”,“tail”=>“second column/data content”},“row2”=>{“head”=>“first column/header content”,“tail”=>“second column/data content”}
用于编辑表格的my_form.html.erb部分如下所示:

<div id="node_table_row_0">
  <%= f.fields_for :table do |table_rows| %>
    <%= table_rows.fields_for :row do |table_cols| %>
      <%= table_cols.text_field :head, :id => 'node_table_row_head_0' %>
      <%= table_cols.text_field :tail, :id => 'node_table_row_tail_0' %>
    <% end %>
  <% end %>
  <button id="add_table_row" type="button" class="btn btn-small">Add Row</button>
</div>

当我点击“添加行”按钮时,我得到确认onclick事件已经被识别,但是表单没有被追加。我是不是走错了路?似乎有一种更简单的方法可以做到这一点。

您是否尝试过使用jQuery insertAfter()方法?使用jQuery选择表,然后使用.children().insertAfter(newRow)

编辑表格发生在与呈现表格的页面不同的页面上。好的,为了确保我理解这里发生的事情,编辑页面将向数据库发送查询,然后从数据库中提取表格,正确吗?编辑页面将包含一个表格,表格标题和内容的每一行都有一个单独的字段,是的,最终将填充表格的现有内容。不过,我还没走到那么远。现在,我只是尝试创建字段,以便它们可以根据输入更新数据库。棘手的部分是通过jQuery生成这些函数。您在确定要使用哪个选择器或调用哪个jQuery函数方面有困难吗?
<table class="table">
  <% @node.table.each do |row| %>
    <tr>
      <th><%= row[1]['head'] %></th> <td><%= row[1]['tail'] %></td>
    </tr>
  <% end %>
</table>
$(document).ready(function(){
  $('#header').append('Script loaded')
  var newIndex = 0
  $('#add_table_row').click(function(){
    $('.sidebar_img').append('onclick event activated')
    var prevIndex = newIndex
    var prevRow = $('#node_table_row')
    newIndex = newIndex + 1
    var newRow = prevRow.clone(true).attr('id', 'node_table_row_'+newIndex)
    newRow.find('#node_table_row_head').attr({ id: 'node_table_row_head_'+newIndex, name: 'node[table][row'+newIndex+'][head]'})
    newRow.find('#node_table_row_tail').attr({ id: 'node_table_row_tail_'+newIndex, name: 'node[table][row'+newIndex+'][tail]'})
    newRow.after(prevRow)
  });
});