我使用了一些使用的CSS表单元素:格式化样式,例如。
input:checked + label {
background-color: green;
}
相应的HTML(例如简化)将是:
<input type="checkbox">
<label>My Checkbox</label>
不幸的是,当.field_with_errors发挥作用时,检查样式会造成严重破坏,因为它会在两个元素周围创建一个div,如下所示:
<div class="field_with_errors">
<input type="checkbox">
</div>
<div class="field_with_errors">
<label>My Checkbox</label>
</div>
据我所知,鉴于HTML结构,根据复选框是否被选中,不再可能为标签设置样式。
我无法在标签或输入上完全删除field_with_errors
,因为我正在处理的应用程序的遗留方面依赖于它。
所以我想知道是否可以简单地使它成为field_with_errors
如果它们被隐藏则不会包装元素。我还不太了解Ruby / Rails,但我知道(当然)它会运行pre-page-load。我仍然希望我可能没有想到的东西:-D。
也欢迎任何替代但同样有效的方法。
答案 0 :(得分:2)
您可以使用原始HTML并生成复选框并自行标记,而无需使用视图帮助程序。该名称为model[field]
,您必须确保在未选择时设置正确的值,因为浏览器不会发回未选中的复选框。
答案 1 :(得分:0)
您可以添加一个css规则,将带有类field_with_errors的div重新定义为不是显示块。
div.field_with_errors { display: inline-block; }