【问题标题】:.field_with_errors messes up bootstrap styled form.field_with_errors 弄乱了引导样式的表单
【发布时间】:2014-02-05 08:24:40
【问题描述】:

我使用 bootstrap 3 的网格系统来布置一个简单的注册表单。但是,如果 Rails 中的验证失败,添加的带有“field_with_errors”类的 div 会打乱我的布局。

我的表单中的一行通常如下所示:

<div class="form-group">
    <label class="col-xs-2 control-label" for="user_secondary_email">Secondary email</label>
    <div class="col-xs-4">
    <input class="form-control" id="user_secondary_email" name="user[secondary_email]" type="text" />
    </div>
</div>

当验证失败时,当前应用的样式如下所示:

<div class="form-group">
    <div class="field_with_errors"><label class="col-xs-2 control-label" for="user_primary_email">Primary email</label></div>
    <div class="col-xs-4">
        <div class="field_with_errors"><input class="form-control" id="user_primary_email" name="user[primary_email]" type="text" value="" /></div>
    </div>
</div>

我做了一些研究,据我了解,代码应该是这样的:

<div class="form-group has-error">
        <label class="col-xs-2 control-label" for="user_secondary_number">Secondary number</label>
        <div class="col-xs-4">
            <input class="form-control" id="user_secondary_number" name="user[secondary_number]" type="text" />
        </div>
   </div>

我不明白的是如何让应用程序将附加类添加到正确的 html 标记中?

感谢任何帮助!

【问题讨论】:

标签: css ruby-on-rails twitter-bootstrap


【解决方案1】:

您可能没有正确定义field_with_errors。在你的 CSS 中,你应该有这样的代码:

.field_with_errors {
  @extend .has-error;
}

除此之外,您的应用程序的行为也应如此。您期望的代码(您问题的第三个代码块)不正确,因为没有一个字段将使用field_with_errors-class 设置样式。问题出在您的 css 文件中。因此,如果我的解决方案不起作用,请发布该文件。

【讨论】:

  • 谢谢,您为我指明了正确的方向 - 我使用脚手架创建了一些代码。而scaffold.css 似乎推翻了bootstrap.css 和我的custom.css。由于我不需要它,删除scaffold.css 解决了这个问题。再次感谢!
  • 这可行,但当您使用插件进行输入(例如,使用日历图标等)时,它仍然会破坏圆角。
  • 对于 bootstrap 4,要扩展的类是 .has-danger
  • .has-danger does not work for Bootstrap 4 了。如果您使用server-side validation,则需要从您的代码中设置.is-invalid.is-valid.invalid-feedback(至少在更新助手之前)。您还可以查看 here 了解基于初始化程序的方法。
猜你喜欢
  • 2010-11-08
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-22
  • 1970-01-01
相关资源
最近更新 更多