如何禁用 Web2Py 中的输入字段

How to disable input fields in Web2Py

在定义 table 时,是否有快速的方法 - 除了遍历表单 - disable 输入字段? 将字段设置为 writable=False 显示数据但不显示在输入字段中。

disable=True 这样的东西会很好。

您可以自定义字段的小部件:

db.define_table('mytable',
    Field('myfield', type='string',
          widget=lambda f, v: SQLFORM.widgets.string.widget(f, v, _disabled=True)))

不过要小心——提交表单时,浏览器不会为禁用字段发送任何数据,但 SQLFORM 仍需要一个值(因为 writable=True)。因此,如果您有一个需要值的验证器,您将需要一个解决方法(例如,在表单处理或定义自定义验证器之前在 request.post_vars 中设置字段的值)。