如何更改 SQLform 中复选框标签的位置
How to change the location of the checkbox labels in SQLform
有没有简单的方法来重新定位复选框的标签?我想以与其他控件相同的方式在左侧显示它们。
您只需要制作自己的表单样式(复制 formstyle_bootstrap3_inline_factory,我猜您正在使用)
然后删除以不同方式处理复选框的规则:
elif controls['_type'] == 'checkbox':
label['_for'] = None
label.insert(0, controls)
label.insert(1, ' ')
_controls = DIV(DIV(label, _help, _class="checkbox"),
_class="%s %s" % (offset_class, col_class))
label = ''
谢谢蒂姆的回答。这告诉了我我需要知道的一切。这是我必须做的:
在gluon\sqlhtml.py
中找到相关函数。对我来说是 formstyle_bootstrap4_inline_factory
将formstyle_boostrap4_inline_factory
函数中的_inner
函数复制到我的应用程序中并将其重命名为formstyle_myapp
(将其放在模型文件中可能是最简单的)
从gluon.sqlhtml
复制add_class
函数并将其添加到formstyle_myapp
函数中。这使得它仅对 formstyle_myapp
可见。
更改 db.py 中的默认 formstyle
设置以指向新函数:response.formstyle = formstyle_myapp
最后,调整 formstyle_myapp
的复选框部分,使标签位于所有其他标签下方的左侧,复选框位于所有其他控件下方的右侧:
elif controls['_type'] == 'checkbox' or controls['_type'] == 'radio':
_controls = DIV(controls, _class="%s" % col_class)
有没有简单的方法来重新定位复选框的标签?我想以与其他控件相同的方式在左侧显示它们。
您只需要制作自己的表单样式(复制 formstyle_bootstrap3_inline_factory,我猜您正在使用)
然后删除以不同方式处理复选框的规则:
elif controls['_type'] == 'checkbox':
label['_for'] = None
label.insert(0, controls)
label.insert(1, ' ')
_controls = DIV(DIV(label, _help, _class="checkbox"),
_class="%s %s" % (offset_class, col_class))
label = ''
谢谢蒂姆的回答。这告诉了我我需要知道的一切。这是我必须做的:
在
gluon\sqlhtml.py
中找到相关函数。对我来说是formstyle_bootstrap4_inline_factory
将
formstyle_boostrap4_inline_factory
函数中的_inner
函数复制到我的应用程序中并将其重命名为formstyle_myapp
(将其放在模型文件中可能是最简单的)从
gluon.sqlhtml
复制add_class
函数并将其添加到formstyle_myapp
函数中。这使得它仅对formstyle_myapp
可见。更改 db.py 中的默认
formstyle
设置以指向新函数:response.formstyle = formstyle_myapp
最后,调整
formstyle_myapp
的复选框部分,使标签位于所有其他标签下方的左侧,复选框位于所有其他控件下方的右侧:elif controls['_type'] == 'checkbox' or controls['_type'] == 'radio': _controls = DIV(controls, _class="%s" % col_class)