问题描述
我定义了一个自定义验证器,当表单字段ist填充值时,该验证器可以按预期工作。但是,如果将表单字段保留为空,则不会调用自定义验证程序,并且该字段也不会得到验证。
当我另外激活选项“强制性”时,可以防止发送带有空值的表单,但是在我的情况下这是不可能的,因为该字段不是必须的。
更准确地说:
复选框新闻稿:未选中时,不需要“电子邮件”字段,因此不是必填项。选中后,“ email”字段是必填字段,因此应为必填字段,并由我的自定义验证程序进行验证,该验证程序将检查地址是否已在数据库中。
我的问题:
- 是否有可能根据复选框设置“强制性”验证器
- 或者当字段为空时是否有可能强制自定义验证器 ?
解决方法
您可以尝试使用powermail_cond。此扩展名使您可以根据其他表单字段的状态显示或隐藏字段。 因此,您将创建没有验证和强制标志的第二个字段“电子邮件”。然后通过powermail_cond创建以下规则
- 未选中复选框时显示字段“电子邮件可选”
- 未选中复选框时隐藏字段“带有强制性的电子邮件”
- 选中复选框时隐藏字段“电子邮件可选”
- 选中复选框时显示字段“ email-mandatory-with-validation”
这应该与powermail_cond 7.4一起使用。