ai didi

javascript - CSJS 不更新 SSJS 设置的属性

转载 作者:行者123 更新时间:2023-11-29 15:28:25 24 4
gpt4 key购买 nike

这是(是/否)单选按钮 onChange 事件 CSJS,它禁用/启用另一个“inputOtherRadio”单选按钮。它完美地工作:

rObj = dojo.query("[id$=':inputOtherRadio']");
if(thisEvent.target.value=="Y"){
rObj.disabled = true;
} else {
rObj.disabled = false;
}

但是如果我设置 xPage 'inputOtherRadio' 组件 Disable 属性 = 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 代码为禁用的组件工作?

最佳答案

将第一个单选按钮中的 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>

单选按钮控件被渲染到

enter image description here

如您所见,disabled 属性被分配给输入元素“Yes”和“No”,而不是整个单选按钮控件。这就是为什么你必须为每个选项设置 disabled 属性。

关于javascript - CSJS 不更新 SSJS 设置的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37057456/

24 4 0
文章推荐: mysql - mysql中将表列拆分为多列
文章推荐: android - 以编程方式在 ListView 上添加空页眉或页脚
文章推荐: android - 如何从 Activity D 返回到 A
文章推荐: javascript - 通量/ react : how to handle filtered api-data in a store
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com