web-dev-qa-db-ja.com

フォームフィールドにエラークラスが設定されていません

さまざまな理由で、_validateではなく_submitフックで検証している複合体があります。これは、errorクラスがフォーム要素に追加されないことを除いてうまく機能しています。

足りない単純なものはありますか、それともform_get_errorsを使用して自分でクラスを設定する必要がありますか?

(送信時に検証を行う理由は、フォームデータが有効かどうかに関係なく保存したいためです。)

1
Icode4food

最も簡単な方法は、フォームにエラーがある場合、検証ステップでフォームデータを保存することです。

function form_validate(&$form, &$form_state) {
  // Validate
  if (form_get_errors()) {
    // This code is only run if the form has errors.
    // Save the form data
    db_query("...");
  }
}

次に、エラーを発生させてdrupalに実行させ、送信機能を使用目的に使用します。有効なフォームデータを処理します。

データを処理する必要がある場合は、検証ステップでも実行できます。これは、$form_state配列の情報がフォーム送信ハンドラーに送信されるためです。

0
googletorp