如何统计指定区域中的必填控件数量
设想在某个区域内有4 个控件,其中只有3 个是必填的(required="true()")。
如何动态计算必填控件的数量?
我尝试了以下这个“计算型”的xPath公式,但似乎并不工作:
- 控件名称:FS_ElectricalRequired
- 公式:
count(//scnElectricalWork//*[@required='true'])
* 测试表单
解决方案
请尝试以下方法:
count(//scnElectricalWork//*[
xxf:is-control-required(concat(local-name(), '-control'))
])
该函数 xxf:is-control-required() 接受一个控件标识符。上面的表达式依赖于表单中的命名约定:如果你有一个名为 gaga 的控件,相应的元素将是 <gaga>,控件的ID将是 gaga-control。
在模型中,计算是在进行验证(其中“必填”是验证的一部分)之前进行的。因此,我们不能在这里使用计算值,需要改用动作语法。你可以把下面的片段放在你的 xf:model 里面,例如刚好在开头标签之后,这样它们就位于表单定义的前部,便于编辑。我也在演示中的表单上进行了更新以反映这一点。
<fr:listener
version="2018.2"
events="form-load-after-controls"
actions="set-alex-suggestion"/>
<fr:action name="set-alex-suggestion" version="2018.2">
<fr:control-setvalue
control="AlexSuggestion"
value="
count(//scnElectricalWork//*[
xxf:is-control-required(concat(local-name(), '-control'))
])
"/>
</fr:action>
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。