使用UJS动态地向表中添加一行
Dynamically adding a row to a table using UJS
我在rails应用程序中使用UJS有麻烦。我需要动态地将内容添加到表中。问题是,甚至警报功能都没有启动。下面是一段代码:_form_index.html.erb
<%= form_tag create_path, remote: true do %>
<%= text_field_tag :task_name, nil, { class: "textField", placeholder: "Start typing here to create a task...", style: "height:35px;font-size:20px" } %>
<%= hidden_field_tag :status, "uncompleted" %>
<%= hidden_field_tag :project_name, project.name %>
<%= submit_tag "Add Task", class: "btn btn-success buttonTask" %>
<% end %>
<!--- nested render --->
<table class = "table table-bordered table-hover">
<%= render partial: "form_tasks", collection: project.tasks, as: :task %>
</table>
_form_tasks.html.erb
<tr class = "taskProp">
<td class = "checkWidth" >
<%= check_box_tag task.id, task.id, false, class: "check" %>
</td>
<td class = "textWidth"> <p class = "form-control-static textRender"> <%= task.name %> </p> </td>
<td>
<span>
<%= link_to "", nil, remote: true, class: "glyphicon glyphicon-sort colorTask" %>
<%= link_to "", edit_task_path(task), class: "glyphicon glyphicon-pencil colorTask" %>
<%= link_to "", task, method: :delete, remote: true, class: "glyphicon glyphicon-trash colorTask" %>
</span>
</td>
</tr>
然后,如果我提交表单,从tasks_controller调用create方法:tasks_controller.rb
def create
project_name = params[:project_name]
project = Project.where( name: project_name ).take!
@task = project.tasks.create( name: params[:task_name], status: params[:status], project_id: project_name )
respond_to do |format|
if @task.save
format.html { redirect_to projects_path, notice: 'Task was successfully created.' }
format.js
else
format.html { redirect_to projects_path }
end
end
end
最后一件事是行不通的。我不认为这部分需要AJAX,因为I -net中的多个示例使用的是没有AJAX的,比如http://bernatfarrero.com/jquery-and-rails-3-mini-tutorial/。在任务视图中创建。js.erb !(因为我正在做一个待办事项列表,并有项目-> has_many任务关系)
$(".table-hover").append("<%= escape_javascripts(render(partial: @task)) %>");
所以主要的问题是ujs根本不起作用
脑裂后,我找到了一个很好的话题来解决我的问题。细节是,我有麻烦与我的javascript和一次我的。js。Erb没有渲染。所以这里有一些建议:
-
读取,点击一些远程表单或链接等后,rails控制台说什么。检查是否正确的文件呈现,如果它呈现,可能会有错误(就像我的情况)。
-
阅读这个主题http://www.alfajango.com/blog/rails-3-remote-links-and-forms/找出发生了什么,你的javascript
相关文章:
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 在GridView中,当单击复选框时,在网格的同一行中使用JavaScript将标签中的值添加到TextBox
- 将一行添加到用户动态创建的特定表中
- 使用Ajax和JQuery从SQL数据库中添加和删除一行
- 在每个固定高度段落的最后一行添加省略号,并隐藏溢出 y
- 如何使用 jQuery 在文本区域中的每一行添加文本
- 如何添加“;选择“;当一行被单击时,类仅限于表的一行
- 如何使用 JavaScript 在 “ ” 和 put 之间的每一行中添加 every
- 当上一行/当前行被填充时,将新行添加到HTML表中
- 如何在从服务器获取数据的动态表的每一行中添加下拉列表
- 如何在嵌入php的html表中为每一行添加复选框,并在数据库(Postgresql)中更新其值
- 使用Jquery在最上面一行添加行数据
- 使用Javascript和MVC将一行添加到我的表中
- 向表中的每一行添加onclick事件
- Jquery在创建新行时不向最后一行添加索引
- 向Flexigrid的一行添加onclick事件
- 如何使用javascript/jquery在每一行添加编辑和删除按钮
- 如何在中为一行添加按列动态的数据
- 如何将两个下拉列表中的一行添加到表中,并在选择时删除
- jQuery 箭头键控函数在表的最后一行添加文本框时停止