我的 xpage 中有 dojo 验证文本框,其中计算了所需的属性(动态计算),如下所示
var syn = getComponent("SynCboxGrp").getValue();
if (syn == "Yes")
{return true;
}else{
return false;
}
这里组件 SynCboxGrp 是单选按钮。根据单选按钮的值,文本框是必需的。但它不能正常工作。更改单选按钮值不会更改所需的行为。
感谢任何帮助
更新
感谢 stwissel、Per Henrik Lausten 和 Eric。我在必需的属性中只有这个 ssjs
<xe:djValidationTextBox id="UBOCAgent" value="#{dsRacDoc.UBOCAgent}" disableClientSideValidation="true">
<xe:this.required><![CDATA[#{javascript:var syn = getComponent("SynCboxGrp").getValue();
if (syn == "Yes")
{
return true;
}else{
return false;
}
}]]></xe:this.required>
</xe:djValidationTextBox>
我还在我的单选按钮 onclick 事件上尝试了这个部分刷新代码XSP.partialRefreshGet("#{id:UBOCAgent}");
这仍然不会改变行为。它基于初始单选按钮值工作。不利的一面是,因为它是一个获取请求,它会从服务器更新字段内容。我还尝试了 Eric 的建议禁用客户端验证,但这没有帮助。
Eric,我也在尽可能地使用 CSJS,但在这种情况下,所需的属性只有 SSJS 选项。所以不知道如何尝试 CSJS。我应该尝试创建自己的 dojo 字段而不是使用 entension lib 中的一个吗?如果是这样,我不确定如何计算所需的属性。如果您可以帮助我提供一些示例代码,那将是很大的帮助。谢谢你的时间。