我的地方栏按钮定义如下:
<xc:ccMain>
<xc:this.placeBarActions>
<xe:basicLeafNode label="Save" onClick="XSP.executeOnServer('#{id:saveEventHandler}','#{id:applicationLayout1}')">
</xe:basicLeafNode>
..........
然后:
<xp:eventHandler id="saveEventHandler" submit="true" event="calledbyid" refreshMode="complete" action="#{javascript:saveDocument();}"></xp:eventHandler>
我想禁用onClick事件上的“保存”按钮,尤其是客户端JS
谢谢
答案 0 :(得分:0)
而不是使用CSJS,在我看来,这个任务不必要地复杂化,我会使用SSJS和部分刷新的组合:
服务器端onclick
事件设置viewScope
变量(requestScope
可能不够),如
viewScope("isDisabled", true)
同一事件会对按钮周围的已命名xp:div
或xp:panel
执行部分刷新,甚至可能只对名为xp:button
的<{1}}
按钮的disabled属性以编程方式评估viewScope
变量:
disabled="#{javascript:viewScope("isDisabled")}"
应该做的伎俩。
答案 1 :(得分:0)
您要禁用按钮&#34;保存&#34;在文档的保存和页面重新加载期间。
您的basicLeafNode是placeBarActions的子节点 它被渲染为
<span class="lotusBtn">
<a href="javascript:;" onclick="javascript:...">Save</a>
</span>
不幸的是,没有财产&#34;禁用&#34;用于轻松禁用按钮的href标签。
使用onclick
覆盖按钮的'return false;'
事件。当用户在执行期间第二次点击按钮时,它什么都不做。
将颜色设置为灰色,使其在执行期间禁用按钮。您必须使用color:gray !important
进行设置,因为OneUI对.lotusBtn a
的定义为color: #000 !important
,否则将取代灰色设置。
以这种方式更改您的代码
<xe:basicLeafNode
label="Save"
onClick="event.target.onclick= 'return false;';
event.target.setAttribute('style', 'color:gray !important');
XSP.executeOnServer('#{id:saveEventHandler}', '#{id:applicationLayout1}');">
</xe:basicLeafNode>
由于这个basicLeafNode是applicationLayout1的一部分,因此在重新加载页面后,它将恢复到它的原始内容。