Champ de formulaire «showon» avec plusieurs champs

10

J'ai 3 champs définis dans mon fichier XML comme ceci:

<field name="field1" type="radio" label="Field 1" class="btn-group" default="1">
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>

<field name="field2" type="radio" label="Field 2" class="btn-group" default="1">
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>

<field name="field3" type="radio" label="Field 3" class="btn-group" default="1">
    <option value="1">JYES</option>
    <option value="0">JNO</option>
</field>

Maintenant, ce que j'aimerais faire, c'est seulement montrer field3 si field1 et field2 sont réglés sur 1.

Lodder
la source

Réponses:

15

Vous pouvez enchaîner les valeurs d'attribut de showon, en utilisant [AND], comme ceci:

showon="field1:1[AND]field2:1"

L'ajout de champs supplémentaires à la chaîne est également autorisé.

En passant, vous pouvez également utiliser une [OR]clause dans la chaîne, ajoutant plus de complexité, par exemple:

showon="field1:1[AND]field2:1[OR]fieldX:1"

Mise à jour pour Joomla 3.7:

À partir de Joomla 3.7, vous pourrez utiliser l' !opérateur (différent de):

showon="field1!:1"

Cela signifie, si field1n'est pas égal à 1

Lodder
la source
Existe-t-il une option différente de showon?
CoalaWeb
@CoalaWeb - C'est ce qu'il fait déjà. field1:1signifiefield1 == 1
Lodder
Je recherche une option! = Pour les listes de sélection grandes / dynamiques qui n'ont qu'une seule option qui masquerait un autre champ de formulaire plutôt qu'une grande liste séparée par des virgules. D'après mes recherches, il ne semble pas que cela existe, je pourrais examiner une demande de pull, Cheers.
CoalaWeb
pouvez-vous utiliser !emptyou !:*?
Eoin
1
Apparemment, vous pouvez utiliser showon="foo!:"Je n'ai pas encore testé. Voir ici: joomla.stackexchange.com/questions/21022/form-field-showonempty
Eoin