【问题标题】:Adding styling to a form in Rails 4 causing f.submit button to not work在 Rails 4 中向表单添加样式导致 f.submit 按钮不起作用
【发布时间】:2016-02-07 00:22:46
【问题描述】:

我正在 Rails4 中构建一个表单。当我添加 div 来设置此表单的样式时,f.submit 按钮停止工作。我没有更改控制器或模型。代码如下。谢谢!

_计划视图中的表格

 <div class="sidebar-widget">
                  <div class="Pricing-box">
                      <div class="price-title spacing-box">
                        <h4>Create a New Plan</h4>
                      </div>

                    <hr>
                    <div class = "sidebar-form"
                    <%= form_for(plan) do |f| %>

                      <div class="name-field">
                        <%= f.label :name %>
                        <%= f.text_field :name %>
                      </div>

                      <div class="time-field">
                        <%= f.label :time %>
                        <%= f.time_field :time %>
                      </div>

                      <div class="date-field">
                        <%= f.label :date %>
                        <%= f.date_select :date %>
                      </div>

                      <div class="restaurant-field">
                        <%= f.label :restaurant %>
                        <%= f.collection_select :restaurant_id, Restaurant.all, :id, :name %>

                      </div>
                      </div>

                      <div class="spacing-grid">

                        <%= f.submit "Create Plan", class: 'btn btn-md btn-black'%>
                        <% end %>

                      </div>
                  </div>

来自计划控制器:新建、索引和创建操作

class PlansController < ApplicationController

  def new
    @plan = Plan.new
  end

  def create
    @plan = Plan.create(plan_params)
    @plan.users << current_user
    redirect_to @plan
  end

  def index

    @plans = Plan.all
    #binding.pry
     respond_to do |format|
      format.html
      format.js {}
    end
  end

在计划视图中,index.html.erb

<section class="ptb ptb-sm-50">
            <div class="container">
                <div class="row">
                    <div class="col-md-3 col-sm-4 mt-xs-30">
                      <%= render "plans/form", {plan: Plan.new } %>
                      <%= render "plans/all_plans", {plans: @plans} %>
                    </div>
                </div>
            </div>
</section>  

【问题讨论】:

  • 点击提交按钮后,您的日志中会显示什么?
  • 这是 Rails 4 中表单中提交按钮的正确语法。你能发布完整的表单代码吗?也许还有一些模型/控制器代码。
  • @marsAtomic 奇怪的是,控制台中什么都没有发生。
  • 如果你删除类,提交按钮是否有效?
  • 您在使用 Turbolinks 吗?样式可能只是与您的困难巧合。您的日志没有显示任何内容的事实表明按钮按下被忽略了,这对我来说就像 Turbolinks。

标签: css ruby-on-rails ruby-on-rails-4 form-submit form-for


【解决方案1】:

尝试修改您的 form_for 标记,使其看起来像这样:

<%= form_for @plan, url: {action: "create"} do |f| %>

这是 Rails 指南推荐的语法 - 不确定这是否能解决您的问题。

【讨论】:

  • 谢谢!我试过了(除了因为这是一个将由不同控制器使用的部分,我没有使用实例变量——我在 index.html.erb 页面中定义了呈现部分的计划)但它不起作用.我认为无论如何 create 是表单的默认操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 2017-07-02
  • 1970-01-01
  • 2015-11-09
相关资源
最近更新 更多