2

Drupal でリンクをクリックしたときに AJAX を使用してフォームを送信するにはどうすればよいですか?

function search_form($form,$form_state) {
  $form['support_email'] = array(
    '#theme' => 'link',
    '#text' => '',
    '#ajax' =>array(
      'callback' => 'ajax_change',
      'wrapper' => 'email-hidden',
      'method' => 'replace',
      'click' => 'true',
    ),
  );
}

これは、フォーム内にあるフォーム リンクです。リンクをクリックすると、AJAX コールバック関数ajax_changeが呼び出されますが、これは発生していないようです。

4

2 に答える 2

1

#ajax機能のフォーム API リファレンスには、「使用先: ボタン、チェックボックス、チェックボックス、イメージ ボタン、パスワード、ラジオ、ラジオ、選択、送信、テーブル選択、テキストエリア、テキスト フォーマット、テキスト フィールド」と記載されています。リンクがリストにないため、機能しません。#ajax 機能は、指定されたフォーム要素が変更されたときに Drupal に AJAX 呼び出しを実行させます。リンクは変わらないので、機能しないのは当然です。

Asaf (ajax submit for any form)モジュールは、あなたがやりたいことを達成するのに役立つかもしれません。

また、この AJAX を使用して要素を非表示にしようとしているようです。Forms API には、要素を条件付きで簡単に表示/非表示にするための状態機能があります。州の詳細については、こちらをお読みください。

#ajax コールバックは、動的に変化するフォームを作成するために使用されます。

于 2013-08-03T23:37:30.143 に答える