在构造表单时,使字段的验证器依赖于另一个字段的输入

时间:2014-10-28 19:31:07

标签: web2py

假设你有一些表,并想手动为该表构建一个表单。

FORM = FORM(
    INPUT(_name = 'var1_input', requires = (...), ...),
    INPUT(_name = 'var2_input', requires = (...), ...)
    ...
    )

有没有办法在表单中指定'requires'语句,只有当用户为var2_input输入内容时才需要输入var1_input,只有当用户为var1_input输入内容时才需要var2_input?谢谢。

1 个答案:

答案 0 :(得分:1)

一个选项是使每个验证器取决于是否已为其他输入字段发布了值:

FORM = FORM(
    INPUT(_name = 'var1_input',
          requires = IS_NOT_EMPTY() if request.post_vars.var2_input else None, ...),
    INPUT(_name = 'var2_input',
          requires = IS_NOT_EMPTY() if request.post_vars.var1_input else None, ...)
    ...
    )

另一种方法是使用onvalidation函数。