首页 > 解决方案 > web2py默认表单样式不起作用

问题描述

在我的appconfig.ini文件中,默认formstyle值为bootstrap3_inline. 但是当表单在浏览器中显示时,表单元素是垂直显示的,一个在另一个下方,并且页面源显示表单类是form-horizontal. 我尝试使用所有其他选项formstyle,但无法获得引导程序form-inline。我正在使用 Chrome 浏览器。

我想要“form-inline”样式,因为我的表单只有几个元素,并且“form-horizo​​ntal”样式未使用大量屏幕空间。如何让表单显示在一行中?

标签: csstwitter-bootstrap-3web2py

解决方案


这个bootstrap3_inline名字有点误导,因为它实际上是为了产生一个Bootstrap 水平形式。在此上下文中,术语“内联”仅表示每个表单字段都显示标签和内联输入(与默认设置相反,输入显示在标签下方)。

要转换为真正的 Bootstrap 内联形式,您可以FORM在构造对象后简单地更改对象的类:

form = SQLFORM(db.mytable).process()
form['_class'] = 'form-inline'

如果您想将此样式应用于多个表单或使其成为默认样式,您可以formstyle基于boostrap3_inlineformstyle 创建一个自定义函数:

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

推荐阅读