Sie können dies mit einem XPath-Einschränkung, die wie folgt aussieht:
<xf:bind
ref="my-value"
constraint="
if (tokenize(., '\s+') = 'none') then
count(tokenize(., '\s+')) = 1
else
true()"/>
Was dies bedeutet ist die folgende:
- , wenn es eine „none“ Wert ausgewählt ist, dann stellen Sie sicher, es gibt nur diesen Wert (
count() = 1
)
- Wenn das nicht der Fall ist, wird die Steuerung als ungültig markiert
- Wenn keine "keine" Option ausgewählt ist, dann ist die Kontrolle gültig
Alternativ oder zusätzlich als Alex über oben weist darauf hin, können Sie automatisch die anderen Optionen deaktivieren, wenn der Benutzer die Option „Keine“ auswählt:
<xf:bind
ref="my-value"
calculate="if (tokenize(., '\s+') = 'none') 'none' else ."
readonly="false()"/>
Was das bedeutet ist:
- , wenn es eine „none“ Wert ausgewählt ist, dann stellen Sie sicher, dass der Wert auf „none“ gesetzt ist nur
- sonst, halten Sie den Wert wie
- auch sicherstellen, dass der Wert nicht nur lesbar ist (was die Standardeinstellung sein würde, wenn calculate verwendet wird)
UPDATE 2016.11.25:
Die ursprüngliche Lösung auch wie folgt ausgedrückt werden:
<xf:bind
ref="my-value"
constraint=". = 'none' or count(tokenize(., '\s+')) != 1"/>
Anstatt das Steuerelement ungültig zu machen, wenn "Keines der obigen" und etwas anderes ausgewählt ist, können Sie automatisch jedes andere Element abwählen, wenn "Keines der obigen" ausgewählt wird, indem Sie ein '
avernet
@Dmitre, nicht sicher, warum Sie das "xpath" -Tag entfernt haben, da die Antwort XPath aufgerufen hat! – ebruchez