【发布时间】:2014-01-11 23:36:34
【问题描述】:
我有这个应用程序,其中我有任务和子任务。每个任务都有一个添加子任务按钮,单击它会转到放置在 application.html.erb 文件中的 jquery 脚本。然后附加一个 p 标签来保存我的新子任务。现在想要的是而不是那段,我希望它显示一个小的子任务创建表单,仅包含 :name 文本字段和一个保存按钮,这将把它作为我的子任务控制器的创建操作。
记住每个子任务都属于一个任务
这就是我现在创建子任务的方式
<% provide(:title,'ToDoProject') %>
<% flash.each do |key,value| %>
<div class="alert alert-<%=key %>"><%=value %></div>
<%end%>
<h1>Create a subtask</h1>
<div class="container-fluid">
<div class="row-fluid">
<div class="span7">
<%=form_for [@task,@subtask] do |s| %>
<%=s.label :name %>
<%=s.text_field :name,autofocus:'true' %>
<%=s.submit "Save",class:'btn btn-success'%>
<%end%>
</div>
</div>
</div>
我想要这个相同的表单,但是当用户点击添加我的任务的新子任务时动态显示,以便用户可以为子任务命名,然后点击保存,它将被保存到我的数据库。
但这一切都需要通过 jquery 并使用它的 append 函数。
这里是新更新的 show.html.erb,带有子任务表单和添加卡片按钮,使其可见
<div class="subtaskform" id="subtask_form_<%=task.id %>" style="width:218px;margin:0 2px 0px 3px;">
<%= form_for([task, task.subtasks.build]) do |f| %>
<%= f.text_area :name,rows:'3',cols:'3'%>
<%= f.submit "save",class:'btn btn-success' %>
<a data-id='<%=task.id %>' href="#"><i class="fa fa-times fa-lg"></i></a>
<% end %>
</div>
<p class="addcard" id="addcard_<%=task.id%>"><a href="#" data-id='<%= task.id %>' id='add_card_<%= task.id %>'>Add a card...</a></p>
这里是jquery代码
$('.addcard > a').click(function(e){
$('#subtask_form_' + $(this).data('id')).show(1000);
e.preventDefault();
});
$('.subtaskform a').click(function(e){
$('#subtask_form_' + $(this).data('id')).hide(1000);
e.preventDefault();
});
【问题讨论】:
标签: jquery ruby-on-rails