【发布时间】:2016-08-28 00:30:48
【问题描述】:
我正在 Rails 5 中构建一个应用程序并使用 Bootstrap 3 作为框架。
我创建了一个自定义用户控制器等,以允许管理员创建/编辑和销毁用户。我正在为创建用户表单设置模态,模态它自己工作,但是我希望它自动放置和呈现表格行。
到目前为止,当我创建用户时,模式挂起,它创建了用户但没有关闭模式窗口,如果我从按钮重新打开模式,它仍然保留以前用户的电子邮件和详细信息。
我会说我已经将format.js放在了format下的Create、Update和Destroy Controller Actions中。
我的模式及其按钮
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#userCreate">
Add New User
</button>
<!-- Modal -->
<%= form_for(@user, remote: true) do |f| %>
<div class="modal fade bs-example-modal-lg" id="userCreate" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel"><i class="fa fa-user-plus" aria-hidden="true"></i> User Creation</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-xs-12">
<div class="field">
<%= f.label :email, "Email Address - Password Will Be Sent To This Address" %><br />
<%= f.email_field :email, autofocus: true, :class => 'form-control email' %>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-6">
<div class="field">
<%= f.label :f_name, "First Name" %>
<%= f.text_field :f_name, :class => 'form-control f_name' %>
</div>
</div>
<div class="">
</div>
<div class="col-xs-12 col-sm-6">
<div class="field">
<%= f.label :l_name, "Last Name" %>
<%= f.text_field :l_name, :class => 'form-control l_name' %>
</div>
</div>
</div>
<div class="row">
<div class="">
</div>
<div class="col-xs-12">
<div class="field">
<%= f.label :primary_tel, "Primary Telephone" %>
<%= f.text_field :primary_tel, :class => 'form-control primary_tel' %>
</div>
</div>
<div class="">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<%= f.submit "Create User", :class => 'btn btn-primary' %>
</div>
</div>
</div>
</div>
<% end %>
要呈现 _user_row.html.erb 部分的索引页面
<table>
<thead>
<tr>
<th>User ident</th>
<th>F name</th>
<th>L name</th>
<th>Primary tel</th>
<th>Role</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @users.each do |user| %>
<div class="row" id="user_table_row">
<%= render partial: 'user_row', locals: {user: user} %>
</div>
<% end %>
</tbody>
</table>
现在这个部分正在显示,但只有在我手动重新加载页面之后
最后是 create.js.erb 文件(位于视图/用户中)
$('#userCreate').modal('hide'); <-- close the Modal On Submit
$(".email").val(''); <-- Reset Email Field
$(".f_name").val(''); <-- Reset F_name Field
$(".l_name").val(''); <-- Reset L_name Field
$(".primary_tel").val(''); <-- Reset Telephone Field
$('#user_table_row').prepend('<%= j render @user %>'); <-- Render User
$('#user_row_<%= user.user_ident %>').hide().fadeIn(1000); <-- Display Row
我对 jquery 很陌生,但我在这里被难住了。任何帮助将不胜感激!如果您需要查看其他内容,请告诉我。谢谢。
我的应用程序代码中也不存在
【问题讨论】:
-
我建议您在之前添加表单标签,并在关闭页脚标签后立即结束表单块。
标签: javascript jquery ruby-on-rails ajax twitter-bootstrap