powermail:定制验证器,不带选项

问题描述

我定义了一个自定义验证器,当表单字段ist填充值时,该验证器可以按预期工作。但是,如果将表单字段保留为空,则不会调用自定义验证程序,并且该字段也不会得到验证。

当我另外激活选项“强制性”时,可以防止发送带有空值的表单,但是在我的情况下这是不可能的,因为该字段不是必须的。

更准确地说:

复选框新闻稿:未选中时,不需要“电子邮件”字段,因此不是必填项。选中后,“ email”字段是必填字段,因此应为必填字段,并由我的自定义验证程序进行验证,该验证程序将检查地址是否已在数据库中。

我的问题:

  • 是否有可能根据复选框设置“强制性”验证器
  • 或者当字段为空时是否有可能强制自定义验证器 ?

解决方法

您可以尝试使用powermail_cond。此扩展名使您可以根据其他表单字段的状态显示或隐藏字段。 因此,您将创建没有验证和强制标志的第二个字段“电子邮件”。然后通过powermail_cond创建以下规则

  1. 未选中复选框时显示字段“电子邮件可选”
  2. 未选中复选框时隐藏字段“带有强制性的电子邮件”
  3. 选中复选框时隐藏字段“电子邮件可选”
  4. 选中复选框时显示字段“ email-mandatory-with-validation”

这应该与powermail_cond 7.4一起使用。