当前位置: 首页 > 知识库问答 >
问题:

在Rails中提交bootstrap模态表单后,如何显示有错误的模态?

东郭思远
2023-03-14

我正在使用一个引导模式和带有Ruby on Rails的Simple_form gem。所有运行良好一旦提交。问题是当存在验证错误时,当submit按钮被按下时,模式会关闭。只有在再次单击模态按钮时才会显示错误。

我需要最终用户在表单提交后看到错误消息--我一直在想,如果有错误,我可以使用javascript重新启动模式,但我不太清楚如何启动。任何帮助都是非常感谢的。

我的模态如下:

      <%= link_to "Click here &raquo;".html_safe,
    "#myModal", data: { toggle: 'modal'}, class: "button-main", id: "button-contact" %>

    <!-- Modal -->
    <div id="myModal" class="modal fade" role="dialog">
      <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Email Contact Form</h4>
          </div>
          <div class="modal-body">
            <%= simple_form_for @contact, url: contact_path, html: { id: "contact-form" } do |f| %>
                    <%= f.error_notification %>
            <%= f.input :name, error: 'Name is mandatory, please specify one' %>
            <%= f.input :email, label: 'Your Email' %>
                    <%= f.input :email_confirmation, label: 'Confirm your Email address' %>
                    <%= f.input :preferred_time, collection: ["Any time", "9am - 12pm Tuesday", "2pm - 6pm Tuesday", "9am - 12pm Wednesday"], selected: "Any time" %>
                    <%= f.input :subject, collection: ["New Appointment", "Request to change existing appointment", "Information", "Other"], selected: "New Appointment" %>
                        <%= f.input :message, as: :text %>

                <div class="modal-footer">
                <%= f.button :submit, "Send", 'data-disable-with' => "Sending...",  class: "submit-button", id: "modal-send" %>
                            <p class="warning">
                                Certain email providers have been known to mark our replies as spam, please be sure to check your junk mail inbox if awaiting a response
                            </p>
                <% end %>
          </div>
        </div>
      </div>
    </div>
</div>

还有我的模特:

  class Contact

    include ActiveModel::Model
    include ActiveModel::Conversion
    include ActiveModel::Validations

    attr_accessor :name, :email, :email_confirmation, :message, :preferred_time, :subject

    validates :name,
      presence: true

    validates :email,
      presence: true, length:  { minimum: 6, maxium: 30 }, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i }, confirmation: true

    validates :email_confirmation,
      presence: true, length:  { minimum: 6, maxium: 30 }, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i }

    validates :message,
      presence: true,  length: { minimum: 6, maxium: 1000 }

  end

谢谢

共有1个答案

长孙嘉容
2023-03-14

我肯定这不是最干净或最好的方法来做到这一点,但最终找到了一个解决方案,只有在有错误时才重新加载模态。刚用模态添加了以下内容到我的页面。

<% if  @contact.errors.present?%>
    <script>
        $(window).load(function () {
            $('#myModal').modal('show');
            });
    </script>
<% end  %>
 类似资料:
  • 问题内容: 我的表单中有两个选择元素,类别和子类别。首先,仅显示类别选择。当用户在类别选择中进行选择时,AJAX请求将发送到服务器,并显示子类别选择。它工作正常。 现在,当表单提交中由于任何原因,缺少某些必需的值或任何原因而出现错误时,我将显示错误消息,但是我无法保留选择框的相同状态,我只会看到类别选择,未选择任何值,即初始状态。谁能建议我如何保留这些选择元素的状态? 这是我新表单中的代码段: 这

  • 可以给我一个例子从提交按钮后的输入中提取数据,并在同一页发送到输出H2吗? 这是我的输入和提交按钮。 谢谢你的帮助!!

  • 问题内容: 例如,我有要显示表单输入错误的表单。 如果有一些错误,我需要在输入标签附近显示红色徽章(带有“悬停显示错误”)。如果用户将鼠标悬停在红色徽章上,他将使用AngularJS UI Bootstrap工具提示 查看错误列表。我不想将错误列表放到tooltip-html-unsafe属性中,因为它不方便编辑和维护。 此代码更具声明性: 比这段代码: 如何使用AngularJS UI Boot

  • 问题内容: 我有一个简单的文本输入表单,提交时需要获取一个php文件(将输入传递给文件),然后将结果(仅一行文本)放入a 并将其淡入视图。 这是我现在所拥有的: 我需要的是要动态加载到被调用中的结果。 我有jquery表单脚本,但是我无法使其正常工作。但是我确实加载了库(文件)。 问题答案: 此代码应该做到这一点。您不需要Form插件来完成以下操作:

  • 问题内容: 有人在四月份提出了完全相同的问题,没有任何答案。但是由于他提供的信息太少了;这个问题被放弃了。 我也有同样的问题。在main_page.html我有这行: 一旦你单击此处,编辑模板将出现在Twitter引导程序模式内。 url.py view.py 通常这是contact.html的外观: 我可以把它放进去 。但是,如何从视图中打开模态? 问题答案: 除非你需要使用模态之外的联系表格,

  • 问题内容: 我有一个带有电子邮件属性的表单。 当使用某些验证错误时,Django仍会在输入标签的value属性中呈现先前的值: 我想自己渲染输入标签(在发生错误的情况下添加一些JavaScript代码和错误类)。例如,这是我的模板,而不是{{ form.email }}: 但是,这不会向用户显示错误的值(在此示例中)。 如何在模板中获取字段的值? 问题答案: 这是一项功能请求,已在Django 1