首页 > 解决方案 > Rails simple_form gem 正在为预填充的输入添加绿色边框

问题描述

我在使用 rails simple_form gem 时遇到问题。我正在使用引导程序 4。

我已经通过添加gem 'simple_form'到 Gemfile 来安装 gem。我还通过rails g simple_form:install --bootstrap.

Simple Form 在我的应用程序中几乎可以完美运行。这是一个使用名为“Store”的模型的示例,该模型具有一个字符串属性:“name”。

<%= simple_form_for @store do |f| %>
  <%= f.input :name %>
  <%= f.button :submit, class: "btn-primary" %>
  <%= link_to "Cancel", stores_url, class: %w[btn btn-danger] %>
<% end %>

我对这段代码的唯一问题是,当表单用于更新页面时,simple_form 会向输入元素添加一个“.is-valid”类,这会导致引导程序向字段添加绿色边框。如果没有预先填写该字段,例如使用表单进行“新建”操作时,则不会发生这种情况。

谢谢

标签: ruby-on-railsrubybootstrap-4simple-form

解决方案


config/initializers/simple_form_bootstrap.rb您有几个以 . 开头的不同块config.wrapper。您可以从中删除对valid_class: 'is-valid'它们的任何引用,以便它不再包含在您的表单输入中。IE...

改变这个

config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b|
  ...
  b.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: 'is-valid'
  ...
end

为此(通过删除valid_class

config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'form-group-invalid' do |b|
  ...
  b.use :input, class: 'form-control', error_class: 'is-invalid'
  ...
end

error_class如果您不希望包含对的引用,您也可以删除它。


推荐阅读