gpt4 book ai didi

forms - 如何在 Drupal 7 中使用表单验证

转载 作者:行者123 更新时间:2023-12-04 01:35:15 24 4
gpt4 key购买 nike

我正在尝试在 Drupal Commerce 中编辑结帐表单,以要求用户输入他们的电子邮件地址两次。当他们提交表单时,Drupal 应该检查电子邮件是否匹配,并调用 form_set_error()如果他们不这样做。现在,我只是想在表单上附加一个自定义验证功能,但我无法开始工作。 (我的模块叫checkout_confirm_email,这个模块仅供我们自己使用,所以我没有在名字上花太多功夫)。

function checkout_confirm_email_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'commerce_checkout_form_checkout') {
$form['#validate'][] = 'checkout_confirm_email_form_validate';
dprint_r($form['#validate']);
dsm("I printed");
}
}

function checkout_confirm_email_form_validate($form, &$form_state) {
dsm("Never prints...");
}
dprint_r语句输出 Array ([0] => checkout_confirm_email_form_validate) .所以该函数是表单数组的一部分,但验证函数中的 dsm 语句从不打印。

我实际上已经被困了一段时间。我查了一些例子,我看不出我做错了什么。任何人?

最佳答案

您需要将 #validate 属性附加到表单提交按钮,如下所示:

$form['submit']['#validate'][] = 'checkout_confirm_email_form_validate'

它会起作用然后我的示例不必与您的表单树完全匹配您应该搜索提交按钮数组并将此示例应用于它

关于forms - 如何在 Drupal 7 中使用表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15375616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com