场景:我对XPage应用程序有一个要求,例如,复选框组字段有3个选项.并且有3个不同的表包含每个表的超过10个字段(与数据源绑定).无论从复选框中选择哪个选项,都应显示相应的表格(复选框组没有默认值,所有3个表格都隐藏为= nitially).因为它是一个复选框,所以可以检查所有选项,如果未选中任何选项,则应隐藏相应的表,并清除表中这些字段中输入的值.这是要求,它非常简单,只需要很少的时间来完成它.但问题出在这里.
问题:在复选框的onClick()事件中,我编写了SSJS代码,以清除该选项未选中的特定表中字段集的值.但它没有发生.
var ckbxValue = getComponent("checkBox").getValue(); if(!@Contains(ckbxValue,"1stOption")) { array_1 = new Array("txtFld_1","txtFld_2","txtFld_3","txtFld_4","txtFld_5","txtFld_etc"); for(d=0;d当我取消选中第一个选项时,第一个表将隐藏,这将执行并清除字段值.但价值观没有被清除.但是相同的代码适用于计算文本(没有绑定),并且当表可见时也适用于那些字段.我不明白为什么没有发生这种情况.
我做了另一个解决方法,并满足了暂时的要求.我想知道那段时间发生了什么.
我发现的是,最初有一个隐藏的绑定字段,我通过单击按钮将值设置为"AAA".现在我显示按钮是一些具有完全更新的条件,该字段将显示值"AAA".现在该字段可见,我通过单击另一个按钮将值设置为"BBB".现在它将显示值为"BBB".我现在隐藏它并将值设置为"CCC"并再次使该字段可见.现在我需要看到值"CCC",但我看到"BBB".它是如何发生的?
任何人都可以让我理解为什么会这样发生吗?
提前致谢.
不要追求组件.最好的方法是将组件绑定到范围变量并读取该变量.特别是复选框可以为您节省很多麻烦.
将UI元素视为可视化,而不是数据.业务逻辑总是对数据起作用,而不是对其可视化表示.
试一试.