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();
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
を使用するだけで済む場合があります。
ここにリソースがあります: