ruby-on-rails 使用helper在rails中使用jQuery删除表行

mfuanj7w  于 2022-11-19  发布在  Ruby
关注(0)|答案(2)|浏览(186)

这应该是很容易的,因为很多人都问过,但有答案似乎不为我工作。
我有一个用 AJAX 添加了一行的表,现在我想用AJAX删除它。
我有这部分是补充说:

<tr >
    <td><%= f.hidden_field :project_id, :value => @project.id ,:disabled => true %></td>
    <td><%= f.select :taskType, ['Pre-Sales','Project','Support','Fault Fixing','Out Of Hours'] %></td>
    <td><%= f.text_field :task_name %></td>
    <td><%= link_to_remove_fields "remove", f %></td>

</tr>

这就产生了这个助手:

def link_to_remove_fields(name, f)
    f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)")
  end

  def link_to_add_fields(name, f, association)
    new_object = f.object.class.reflect_on_association(association).klass.new
    fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
      render(association.to_s.singularize + "_fields", :f => builder)
    end
    link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")")
  end

这导致了这个js:

function remove_fields(link) {
    $(link).prev("input[type=hidden]").value = "1";
    $(link).parent(".fields").hide();
    //$(link).find('tr').remove();
    $(link).remove();
}
function add_fields(link, association, content) {  
    var new_id = new Date().getTime();  
    var regexp = new RegExp("new_" + association, "g");  
    $(link).parent().before(content.replace(regexp, new_id));  
}

我可以删除带有delete按钮的列,但不能删除行。我认为我这样做不允许删除'tr'。
我相信这很简单,只是我缺乏jQuery经验,这让我很失望

更新转译的html

<td>
<input id="project_project_tasks_attributes_1315581090843__destroy" type="hidden" value="false" name="project[project_tasks_attributes][1315581090843][_destroy]">
<a onclick="remove_fields(this); return false;" href="#">remove</a>
kse8i1jr

kse8i1jr1#

变更

//$(link).find('tr').remove();

结束日期

$(link).parents('tr').remove();
u59ebvdq

u59ebvdq2#

在Rails中使用jQuery删除表行而不使用帮助程序

也许它会帮到你

控制器销毁操作:

def destroy
    @manufacture = Manufacture.find(params[:id])
    @id = @manufacture.id
    @manufacture.destroy
    respond_to do |format|
      format.js
    end
  end

索引.html.erb

<% @manufactures.each do |manufacture| %>
  <tr id="manufacture-row-<%= manufacture.id%>"> 
    <td><%= manufacture.product.name %></td>
    <td><%= link_to 'Destroy', manufacture, method: :delete, data: { confirm: 'Are you sure?' },remote: true %></td>
  </tr>
<% end %>

销毁.js.erb

$('#manufacture-row-<%= @id %>').remove();

相关问题