【发布时间】:2015-09-17 19:45:21
【问题描述】:
我在使用 rails 表单(远程:true)及其操作时遇到问题。 我正在使用 Rails 4。
我有两个部分。首先是一个包含所有条目的表格(例如工作包),其次是一个用于添加新条目的表格。我填写表格并通过 AJAX 将其发送到我的控制器。之后,表单部分将重新呈现。到目前为止一切顺利。
现在是表单处于“编辑模式”的问题:
<form accept-charset="UTF-8" action="/workpackages/290" class="edit_workpackage" data-remote="true" id="edit_workpackage_290" method="post" role="form">
如果我现在想直接添加另一个工作包,这是不可能的,因为我会更改第一个条目。
如何确保公式在创建后处于“新模式”?
<form accept-charset="UTF-8" action="/workpackages" class="new_workpackage" data-remote="true" id="new_workpackage" method="post" role="form">
可以说我想要哪种形式的模式吗?如果我按下“编辑”按钮,“编辑模式”应该始终可用。
如果我刷新整个侧面,则表单在“新模式”中是新的。为什么不在 ajax 调用之后?
一些代码:
控制器/创建
def create
respond_to do |format|
if (@workpackage.save)
#update current working time on workingtime Account
update_workingtime_account()
#get new infos about workingtime from current day and working account if a new workpackage was created
get_new_workingtime()
flash[:notice] = 'Arbeitspacket erfolgreich erfasst'
format.html { redirect_to @workpackage }
format.js {}
else
format.html { render :new }
flash[:notice] = 'Arbeitspacket konnte nicht gespeichert werden'
format.js {}
end
end
create.js.erb
//AJAX renew Section table
$(document).ready(function() {
$('#workpackage-form').bind('ajax:success', function() {
$('#workpackage-table').html("<%= escape_javascript(render 'workpackages/table') %>");
$('#workpackage-form').html("<%= escape_javascript (render partial: 'workpackages/form') %>");
//re-initialize datetimepicker
$('.datetimepicker').datetimepicker({ format: 'LT' });
});
});
我希望解释足够清楚。
【问题讨论】:
标签: jquery ruby-on-rails ruby ajax forms