xforms - соответствует условию OR - PullRequest
2 голосов
/ 31 января 2012

(я только начинаю с xforms)

У меня есть форма с 10 целочисленными полями ввода и 1 текстовым полем Я пытаюсь установить соответствующие критерии в текстовом поле. Я хочу, чтобы текстовое поле отображалось тогда и только тогда, когда значение одного или нескольких полей больше 18.

Мне кажется, мне нужно условие или условие в соответствующей области, что-то вроде: релевантный = "(/ data / weight_group / weight1> 18 || / data / weight_group / weight2> 18)"

Очевидно, что это не совсем верно, но я не могу найти что-либо даже близко к Google / Stack / и т.д., что наводит меня на мысль, что я лаю не на том дереве.

Есть предложения? Спасибо

Ответы [ 2 ]

1 голос
/ 31 января 2012

Это должно быть примерно так:

relevant="/data/weight_group/weight1 < 18 or /data/weight_group/weight2 > 18"

Некоторые пояснения:

  • Значением соответствующего свойства является выражение XPath.Поэтому вам нужно обратиться к документации XPath, когда что-то не работает.
  • Логическими операторами в XPath являются «и» и «или», а не «&&» и «||».
  • Вынеобходимо экранировать <и> в выражениях XPath как <и>, чтобы они не испортили структуру XML.(Кто-нибудь может это подтвердить?)
0 голосов
/ 01 июля 2015

Во-первых, соответствующее свойство является свойством модели, то есть оно не работает с элементами управления.Во-вторых, оно обновляется с помощью элемента привязки.

<model  xmlns="http://www.w3.org/2002/xforms">
  <instance>
     <data xmlns="">
        <weight_group>
           <weight1/><weight2/>
        </weight_group>
        <valid_weight>
     </data>
  </instance>
  <bind nodeset="/data/valid_weight" relevant="../weight_group/weight1 &lt; 18 or ../weight_group/weight2 &gt; 18">
</model>

Для свойства valid_weight управляется это условие, и любой элемент управления, связанный с действительным весом, исчезает, когда не имеет значения.

...