在我的appconfig.ini
文件中,默认的formstyle
是bootstrap3_inline
。但是,当表单在浏览器中显示时,表单元素垂直显示,一个在另一个下方,并且页面源显示表单类为form-horizontal
。我尝试将所有其他选项用于formstyle
,但无法获取引导程序form-inline
。我正在使用Chrome浏览器。
我想拥有“表单内联”样式,因为我的表单只有几个元素,并且很多屏幕空间都没有使用“表单水平”样式。如何将表格显示在一行中?
最佳答案
bootstrap3_inline
名称有点误导,因为它实际上是为了产生Bootstrap horizontal form。在此上下文中,术语“内联”仅旨在表示每个表单字段都显示标签和输入内联(与默认情况相反,输入显示在标签下方)。
要转换为真正的Bootstrap内联形式,只需在FORM
对象构造后更改其类即可:
form = SQLFORM(db.mytable).process()
form['_class'] = 'form-inline'
如果要将此样式应用于多个表单或将其设置为默认样式,则可以基于
formstyle
表单样式创建自定义的boostrap3_inline
函数:from gluon.sqlhtml import formstyle_bootstrap3_inline_factory
def inline_form(form, fields):
form = formstyle_bootstrap3_inline_factory(3)(form, fields)
form['_class'] = 'form-inline'
return form
然后,您可以将此样式应用于单个表单:
form = SQLFORM(db.mytable, formstyle=inline_form)
或将其设为默认值
formstyle
:response.formstyle = inline_form