Dans un module Joomla 3.9.3, j'essaie, sans succès, d'afficher/masquer un champ avec showon en vérifiant les valeurs des trois autres champs
Mon XML:
<field
name="foo"
type="text"
/>
<field
name="bar"
type="text"
/>
<field
name="fooimg"
type="media"
showon="foo!:[OR]bar!:"
/>
<field
name="baz"
type="radio"
class="btn-group btn-group-yesno"
showon="foo!:[OR]bar!:[AND]fooimg!:"
default=""
>
<option value="bazval">JYES</option>
<option value="">JNO</option>
</field>
Avec: showon="foo!:[OR]bar!:[AND]fooimg!:"
sur le champ baz J'attends que baz soit affiché quand (foo ou bar a une valeur) et fooimg a aussi une valeur.
Mais les résultats sont:
foo = true
bar = false
fooimage = true
baz is NOT SHOWED (should be showed)
foo = false
bar = true
fooimage = true
baz IS SHOWED (as aspected)
Avec fooimage ou foo et bar définis sur False, cela fonctionne comme prévu.
J'ai aussi essayé: "fooimg!:[AND]foo!:[OR]bar!:"
Qu'ai-je fait de mal?
Je ne sais pas vraiment si cela peut vous aider, mais puisque le champ fooimg
n'est affiché que lorsque foo
ou bar
est vrai, alors dans le champ baz
vous n'avez pas à vérifier à nouveau, il suffirait donc de vérifier si le champ fooimg
est true ou non, donc:
<field
name="baz"
type="radio"
class="btn-group btn-group-yesno"
showon="fooimg!:"
default=""
>
<option value="bazval">JYES</option>
<option value="">JNO</option>
</field>
Ce champ baz
ne sera affiché que si le foo
obar
n'est pas vide etfooimg
n'est pas vide. Donc, vous obtenez simplement le même résultat (que vous vouliez réellement obtenir).