当前位置: 首页 > 知识库问答 >
问题:

带有错误句柄的自定义验证忍者表单

皇甫飞飙
2023-03-14

我正在使用忍者表单插件在我的WordPress安装。

我的表单有3个输入文本字段。

在按下submit按钮后,我需要通过检查输入的值是否存在于我的数据库中的自定义表中来验证其中一个输入。

如果该值不存在,则不会发生任何事情(Ninja Form保存表单),如果它存在,则需要添加一个Ninja Form错误,并让用户更改输入,以便用新的值保存表单。

如何钩住提交操作?我如何才能在这个钩子中得到我需要的输入值?如果值存在,我如何添加忍者表单错误,以防止表单保存?

共有1个答案

郭彬郁
2023-03-14

您可以使用ninja_forms_submit_data钩子来完成此操作。在这里,您可以通过变量$form_data使用字段的id访问字段的值。向$FORM_DATA['errors']添加该字段的错误消息时,将不保存表单。

如下所示(在functions.php中):

add_filter('ninja_forms_submit_data', 'custom_ninja_forms_submit_data');
function custom_ninja_forms_submit_data($form_data)
{
    $field_id = 2;
    $field_value = $form_data['fields'][$field_id]['value'];

    $exists = true; // Check your database if $field_value exists

    if($exists)
    {
        $form_data['errors']['fields'][$field_id] = 'Value already exists';
    }

    return $form_data;
}
 类似资料:
  • 我一直在寻找一种能够让我: 验证复杂的(大结构、许多可选的元素子/序列、固定顺序等)XML; 为每个检查/检查块/规则定义自定义错误消息(类似XSD处理器的错误对我没有用); 如果可能,以人类可读的方式有效地定义验证模式/规则; 换句话说,类似Schematron的东西(允许自定义错误MSG,可读性等),但对于复杂的结构检查仍然很好(XPath对于顺序检查之类的事情效率很低)。 是否有一些合适的技

  • 问题内容: 我想自定义弹簧验证错误 但是我做不到。要采取的步骤是什么? 问题答案: 该JSR 303的默认邮件插补算法,您可以通过提供捆绑命名的资源来定制信息。在类路径中创建一个文件,其中包含: 这将更改@Size约束的默认消息,因此您应该使用@Size约束而不是特定于Hibernate的@Length约束。 您可以更改特定约束实例的消息,而不是更改所有约束的默认消息。message在约束上设置属

  • 具有自定义验证的基本HTML5表单。如果提交的值不是数字,浏览器应显示错误消息“字段必须是数字”如果输入“abc”并按submit(或按enter键),该字段将标记为无效,但不会显示错误消息。再次按submit(或按enter)将显示消息。这种双重提交行为出现在Windows和OS X上最新版本的Firefox、Chrome、Safari和IE上。您会注意到默认的“此字段是必需的…”消息在第一次提

  • 问题内容: 我有一个非常简单的表格: 这是自定义表单验证的完成方式吗?我需要评估该电子邮件地址当前没有用户存在。我还需要评估并匹配。我该怎么做呢? 问题答案: 要单独验证单个字段,可以在表单中使用clean_FIELDNAME()方法,因此对于电子邮件: 然后对于相互依赖的共同依赖字段,你可以覆盖在单独验证所有字段(email如上)之后运行的 方法: 我不确定你从哪里来,但是看起来这是为m你的表单

  • 我在Codeigniter中为表单验证创建了一个自定义函数。它连接到URL帮助器,我通过制作MY_URL_帮助器实现了这一点。 助手修改: 我如何称呼验证: 美元这个- 语言文件: 但是提交表单时不会显示任何错误信息。如果我将valid_url函数更改为true和false,它将执行该函数。所以它运行这个函数。 如何使错误消息出现?