1

私の drupal6 サイトには、ウィザード形式があります。フォーム ストレージと再構築プロパティを使用して FormAPI で実装しました。#required プロパティと #element_validate プロパティの関数を使用して、フォームの検証を行っています。正常に動作していますが、1 つには、前のボタンをクリックすると、フォームが検証されていて、そうしたくありません。フォームの特定のボタンがクリックされたときに検証を無効にするスマートで正しい方法はありますか?

4

3 に答える 3

1
  // hack to clear validation errors during wizard processing
  form_set_error(NULL, FALSE, TRUE);
  unset($_SESSION['messages']['error']);
于 2009-04-26T00:56:24.170 に答える
1

ケビンの答えは機能します。前のボタンに追加のプロパティを追加するhttp://drupal.org/project/skip_validationを試すこともできます。'#skip_validation' => TRUE

于 2012-05-31T15:24:34.563 に答える
1

これをきれいに (残念ながら) 行う唯一の方法は、#required = TRUE の使用を避け、ウィザード プロセスでフォームがどの「ステップ」にあるのかを考慮して、検証ハンドラーで自分で検証することです。

一般的なアプローチの 1 つは、進行中のすべてのデータを $form_state['storage'] に蓄積し、再構築間で保持することです。

于 2009-02-21T05:11:57.707 に答える