繁体   English   中英

通过javascript提交表单后在rails中更新div局部

[英]updating a div partial in rails after submitting form via javascript

我有一个名为whatsup的表,还有一个用户,并且以whatsup属于用户的方式实现了它,我使用户可以通过像这样的ajax创建whatsups

$("#chat").append("<%= j render(@whatsup) %>");
$("#new_whatsup")[0].reset();

我在这样的表单顶部显示创建的whatsups

<ul id="chat">
  <%= render @whatsups %>
</ul>

<%= form_for Whatsup.new, remote: true do |f| %>
  <%= f.text_field :details%>
  <%= f.submit "Send" %>
<% end %>

在我的控制器中@whatsups这样声明

@whatsups = current_user.whatsups.all(:limit => 1, :order => 'created_at DESC')

这意味着一次应显示一个Whatsup

我想要的是,应立即重新提交部分@whatsups表单,而无需重新加载整个页面,即仅重新加载该div,以便创建的新whatsups会自动显示。

我认为您应该在您的create动作中添加一个js响应,如下所示:

在WhatsupsController#create中执行以下操作:

respond_to do |format|
    format.js
end

然后创建视图文件views / whatsups / create.js.erb。 您可以在此处创建一个JavaScript,创建完成后将在页面上执行该JavaScript。 像这样:

$("#chat").append("<%= j render(@whatsup) %>");

<div>提交表格后不显示</div><div id="text_translate"><p>我正在尝试使用 FLask 并使用简单的 HTML 和 CSS 为前端构建一个 Webapp,因为我是新手。 现在我面临的问题是&lt;div class="blocking"&gt;在我提交表单后没有显示,但&lt;div class="spinner"&gt;工作正常。 下面是代码</p><pre class="lang-html prettyprint-override"> {% extends "layout.html" %} {% block content %} &lt;body&gt; &lt;form role="form" action="/reviewrequest/{{ value }}" method="POST" onSubmit="return validateForm():"&gt; &lt;table&gt;............. &lt;/table&gt; &lt;input type="submit" name="btn" value="Submit" class="btn btn-success success" /&gt; &lt;div id="blocking" class="blocking"&gt; &lt;div id="spinner" class"center loading"&gt;&lt;/div&gt;&lt;/div&gt; &lt;/form&gt; &lt;script&gt; function validateForm(){ document.getElementById("blocking").style.display = = 'block'; document.getElementById("spinner").style.display = = 'block'; } &lt;/script&gt; &lt;/body&gt; {% endblock %}</pre><p> 注意:相同的 CSS 代码适用于另一个 HTML 文件。</p><p> 编辑:添加了 '.style.display' 但仍然相同,只有微调器显示</p><pre class="lang-css prettyprint-override"> &lt;style type="text/css"&gt; #spinner { display: none; }.loading { border: 2px solid #ccc; width: 60px; height: 60px; border-radius: 50%; border-top-color: #1ecd97; border-left-color: #1ecd97; animation: spin 1s infinite ease-in; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #blocking { display: none; }.blocking{ width: 100%; height: 100%; background: rgba(0,0,0,0.75) no repeat center center; } &lt;/style&gt;</pre></div>

[英]<div> not showing after submitting the form

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Rails错误通过Javascript提交部分内容 通过javascript提交表单 通过javascript提交表单 Rails AJAX部分,无需提交表单 提交表单后如何使用JavaScript显示div Rails 5在提交表单后在页面加载时执行javascript div onclick表单没有在javascript中提交 表单不在按钮上通过javascript提交 <div>提交表格后不显示</div><div id="text_translate"><p>我正在尝试使用 FLask 并使用简单的 HTML 和 CSS 为前端构建一个 Webapp,因为我是新手。 现在我面临的问题是&lt;div class="blocking"&gt;在我提交表单后没有显示,但&lt;div class="spinner"&gt;工作正常。 下面是代码</p><pre class="lang-html prettyprint-override"> {% extends "layout.html" %} {% block content %} &lt;body&gt; &lt;form role="form" action="/reviewrequest/{{ value }}" method="POST" onSubmit="return validateForm():"&gt; &lt;table&gt;............. &lt;/table&gt; &lt;input type="submit" name="btn" value="Submit" class="btn btn-success success" /&gt; &lt;div id="blocking" class="blocking"&gt; &lt;div id="spinner" class"center loading"&gt;&lt;/div&gt;&lt;/div&gt; &lt;/form&gt; &lt;script&gt; function validateForm(){ document.getElementById("blocking").style.display = = 'block'; document.getElementById("spinner").style.display = = 'block'; } &lt;/script&gt; &lt;/body&gt; {% endblock %}</pre><p> 注意:相同的 CSS 代码适用于另一个 HTML 文件。</p><p> 编辑:添加了 '.style.display' 但仍然相同,只有微调器显示</p><pre class="lang-css prettyprint-override"> &lt;style type="text/css"&gt; #spinner { display: none; }.loading { border: 2px solid #ccc; width: 60px; height: 60px; border-radius: 50%; border-top-color: #1ecd97; border-left-color: #1ecd97; animation: spin 1s infinite ease-in; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #blocking { display: none; }.blocking{ width: 100%; height: 100%; background: rgba(0,0,0,0.75) no repeat center center; } &lt;/style&gt;</pre></div> Rails通过ajax提交表单并更新视图
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM