作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 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/
我是一名优秀的程序员,十分优秀!