web-dev-qa-db-ja.com

Webフォーム検証から「フィールドが必要です」というメッセージを表示する方法は?

Webフォームが検証されると、Drupalメッセージ "X field is required "、フィールドの周りに赤い境界線のみを作成します。

Drupal検証中にトリガーされたメッセージをどのように表示しますか?これは、drupal 7.のWebformのブロックビューです。

2
Aslam A

もう1つの強力なオプションは、「ルール」を使用することです。 「Rules」モジュールと「Webform Rules」と「Token」モジュールをインストールします。

次に、カスタムルールを作成します。

/ admin/config/workflow/rulesに移動します

  1. [+新しいルールを追加]をクリックします
  2. 「名前」フィールドに何かを入力します。
  3. [イベントに反応]フィールドで、[Webフォームが送信された後]を選択します。
  4. 次のページに「条件」と「アクション」が表示されます
  5. 条件の下で、検証動作を生成する条件を追加します
  6. [アクション]で[アクションを追加]リンクをクリックします。 [サイトにメッセージを表示]を選択します
  7. 「メッセージ」フィールドの下にメッセージを書きます。 「置換パターン」リンク/展開されたものが表示されます。それを展開すると、利用可能なフィールドに基づいて詳細なエラーメッセージを作成するために使用できる大量のトークンが提供されます。
1

Webform Validation モジュールを使用して、Webformのフィールドに検証を追加できます。

1
DEVARAJ JOHNSON

元の質問によると:

「フィールドの周りに赤い境界線のみを作成します。」

これは_$messagesはテーマで印刷されていません。それが私の意見で最初に探すことでしょう。フォームは検証されていますが、form_set_errorからのメッセージは出力されていません。

Ajaxを使用していない場合は、最初に始めるとよいでしょう。

0
Kevin

hook_form_alter を以下のように実装できます。

function YOUR_MODULE_NAME_form_alter(&$form, &$form_state, $form_id) {

    if ($form_id == "your_webform_id") {
       $form['#validate'][] = 'yourwebform_custom_validate';
    }
}

// Implement Callback
function yourwebform_custom_validate($form, $form_state)
{ 
    if ($form_state['values']['your_field_name']['und']['0']['value'] < 0) {

        form_set_error('your_webform_id', t('Your Error Message'));

    }
 }
0
Kamal Oberoi