Drupal Commerceでチェックアウトフォームを編集しようとしています。ユーザーに電子メールアドレスを2回入力する必要があります。彼らがフォームを提出すると、Drupalは電子メールが一致するかどうかを確認し、一致しない場合はform_set_error()
に電話する必要があります。今のところ、フォームにカスタム検証関数を追加しようとしていますが、これは動作しません。 (私のモジュールはcheckout_confirm_emailと呼ばれています。このモジュールは私たちのためだけですので、私はその名前に多大な努力を払っていませんでした)。Drupal 7でフォーム検証を使用する方法
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文は決して出力しません。
私は実際にしばらくの間立ち往生しています。私は例を探しましたが、私は何が間違っているのか分かりません。誰でも?
$form['submit']['#validate'][] = 'checkout_confirm_email_form_validate'
そして、それはそれは私の例では、あなたが検索するフォームツリーと同じ試合である必要はありません動作します:あなたはこのように送信ボタンをフォームに#validateプロパティを添付する必要が
これは '$の形であるべき[ '#を提出'] ['#validate '] [] '? – user151841
#は要素の属性ではない#いいえ –