在我的appconfig.ini文件中,默认的formstylebootstrap3_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

10-07 23:45