コンポーネントをいくつかの相互作用で拡張したいと思います。この目的のために、必要な場合にのみフォームにフィールドを表示するようにしています。これはform.xml
のshowon
- declarationsでうまく機能します。
ここで、ボタンクリックでトリガーされるAJAX
- callがfalse
を返す場合にのみフィールドを表示したいと思います。
もちろん、これをレイアウトファイルにハードコーディングすることもできます(少なくとも私はできると思います)。しかし、たぶん私がする方法があります
form.xml
で宣言されている要素を非表示にするfalse
を返す場合、この要素を再表示しますform.xml
などの他の要素のインジケータとして、showon = 'myhiddenfield:1'
の非表示でない要素を使用しますそれについてのアイデアは?
まあ、ajaxメソッドの成功パラメーター内で非表示/表示関数をアタッチできます。
var showMethod = function () {
// show method code...
}
var hideMethod = function () {
// hide method code...
}
$.ajax({
type : 'POST',
data : request,
success : function(response) {
if (response.yourvalue == false) {
showMethod();
} else {
hideMethod();
}
}
});
メインフィールドが表示されるかどうかに関係なく、他のフィールドも影響を受ける必要があるように見えるため、これらすべてのフィールドに一度に同じことを適用するだけでよく、最初にメインフィールドの表示を切り替えて決定します。他の人が表示する必要がある場合。
私は今、あなたが望むものと少し混乱しています... xmlで何かを非表示にすることはできません。特定のパラメーターを添付するだけで、各フィールド出力の特定の機能に変換されます。 showonは、別のフィールドに特定の値がある場合にフィールドを表示します。したがって、これが発生するまでフィールドは非表示になります。これはjsとcssです。 Labelclassを使用して、特定のクラスをフィールドにアタッチすることもできます https://docs.joomla.org/Form_field#Common_attributes 。一般に、要素の表示/非表示の背後はとにかくcssです。
一方、私はこれを試していませんが、「ajaxフィールド」の値に基づいて、表示したいフィールドにshowonパラメータを設定し、falseが発生したときにそれらが表示されるかどうかを確認できます。