web-dev-qa-db-ja.com

Ajaxを使用してフォームからjQuery関数を呼び出す方法は?

My drupal 8フォームのフィールドの変更時に発生するajaxコールバックがあります。これにより、ラッパーにサーバーからの情報が入力されます。ただし、jqueryコマンドを実行して可視性を確保したいその後、別のフィールドが表示されます。これを行うにはどうすればよいですか?

私はこれを試しました$form['ajax-wrapper']['#attributes'] = array('visibility'=>'initial');

しかし、それは何の効果もありません。このjqueryコマンドまたはこのJavaScriptを実行できるようにする必要がありますが、ajaxの後にそれをトリガーする方法がわかりません

document.getElementById( 'ajax-wrapper' ).style.visibility = 'initial';

           $("#ajax-wrapper").show();
1
Diana

ajaxの概念と、AJAX Form APIの機能とは何かを説明します。フォーム項目に#ajaxを追加する必要があります。 ajaxコールバック(php)を実行するアイテム。これらの関数はAJAXコマンドの一部をトリガーできます外部JS関数をトリガーできます。

その上で、実際のJSコードはDrupal JS /動作フォーマットに準拠する必要があるため、Drupalによって適切に活用されます。ここでの最小値は少なくとも jQueryの競合を防ぐために匿名関数で囲まれている

/**
 * @file
 */
(function ($) {

  "use strict";

  // All the JavaScript for this file.
  $("#ajax-wrapper").show();
  // other code or behaviors

})(jQuery);

さらに、visibleまで他のフィールドに依存するフォームフィールドがある場合は、#statesを使用するだけで済む場合があります。

ここにリソースがあります:

3
Kevin