这是(是/否)单选按钮onChange事件CSJS,禁用/启用另一个< inputOtherRadio'单选按钮。它完美无缺:
rObj = dojo.query("[id$=':inputOtherRadio']");
if(thisEvent.target.value=="Y"){
rObj.disabled = true;
} else {
rObj.disabled = false;
}
但是,如果我设置xPage' inputOtherRadio'组件禁用property = true然后上面的代码不起作用(它不是不可用的......)
<xp:radioGroup id="inputOtherRadio" disabled="true">
<xp:selectItem itemLabel="Yes" itemValue="Y" id="selectItem11"></xp:selectItem>
<xp:selectItem itemLabel="No" itemValue="N" id="selectItem12"></xp:selectItem>
</xp:radioGroup>
如何让CSJS代码适用于已禁用的组件?
答案 0 :(得分:1)
将第一个单选按钮中的CSJS代码更改为
<xp:radioGroup id="mainRadio" defaultValue="N">
<xp:selectItem itemLabel="Yes" itemValue="Y"></xp:selectItem>
<xp:selectItem itemLabel="No" itemValue="N"></xp:selectItem>
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[return false;]]></xp:this.script>
</xp:eventHandler>
<xp:eventHandler event="onchange" submit="false">
<xp:this.script><![CDATA[
options = dojo.query("[name$=inputOtherRadio]");
for(i=0; i < options.length; i++) {
if(thisEvent.target.value=="N"){
options[i].disabled = true;
} else {
options[i].disabled = false;
}
}
]]></xp:this.script>
</xp:eventHandler>
</xp:radioGroup>
单选按钮控件呈现为
正如您所见,已将disabled属性分配给输入元素&#34;是&#34;和&#34;不&#34;而不是整个单选按钮控制。这就是为什么你必须为每个选项设置禁用属性的原因。