web2py默认formstyle不起作用

时间:2018-06-18 12:11:00

标签: css twitter-bootstrap-3 web2py

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

我希望采用'form-inline'样式,因为我的表单只有几个元素,而且很多屏幕空间都没有使用'form-horizo​​ntal'样式。如何将表单显示在一行中?

1 个答案:

答案 0 :(得分:1)

bootstrap3_inline名称有点误导,因为它真的打算产生Bootstrap horizontal form。此上下文中的术语“内联”仅用于表示每个表单域显示标签和输入内联(与默认值相反,输入显示在标签下方)。

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

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

如果要将此样式应用于多个表单或将其设置为默认值,可以基于formstyle 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