gpt4 book ai didi

python - web2py 中 SQLFORM 小部件输入的自定义 CSS 类

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:32 25 4
gpt4 key购买 nike

给定 Controller 中的这个 SQLFORM:

form = SQLFORM.factory(db.source_server, db.target_server)

使用下表定义:

db.define_table('target_server',
Field('target_url', 'string'),
Field('target_user', 'string'),
Field('target_password', 'password'))
db.define_table('target_server',
Field('target_url', 'string'),
Field('target_user', 'string'),
Field('target_password', 'password'))

如何为每个表单小部件应用自定义 CSS 类 <input>元素?

  {{=form.custom.begin}}
<fieldset>
<legend>Source Server</legend>
<div class="clearfix">
<label for="source_url">URL:</label>
<div class="input">

<input class="bla bla" name="field_name">

</div>
</div>
...
{{=form.custom.end}}

最佳答案

请注意,所有小部件都已经有一个以小部件类型命名的类(例如,“字符串”、“整数”、“日期”等)以及一个“表名_字段名”形式的 ID,因此您可能无需添加自定义类就可以在 CSS 中使用它们。参见 here了解更多详情。

如果您确实需要自定义类,请注意 web2py FORM 和 SQLFORM 对象及其子组件是 HTML helper objects并且可以像任何 HTML 助手一样进行操作。特别是,帮助程序就其组件而言充当列表,就其属性而言充当字典(输入类是 INPUT 对象的属性)。因此,您可以在创建表单的 Controller 或 View 中执行类似的操作:

form.custom.widget.field_name['_class'] = 'bla bla'

如果您需要更改特定类型的所有小部件的类,您也可以通过 .elements() search functionality 来完成。 :

for input in form.elements('input', _class='string'):
input['_class'] = 'my-string'

另一个选项是显式 define a widget for the Field在表定义中,使用自定义小部件或简单地将 _class 属性传递给内置小部件之一:

Field('target_user', 'string', widget = lambda field, value:
SQLFORM.widgets.string.widget(field, value, _class='my-string'))

此方法将影响包含此字段的所有表单(除非您在创建表单之前明确删除或替换小部件)。

关于python - web2py 中 SQLFORM 小部件输入的自定义 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com