如何禁用 xPage placeBar 按钮?
how to disable xPage placeBar button?
我有这样定义的放置栏按钮:
<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>
我想禁用 "Save" 按钮 onClick 事件,尤其是客户端 JS
谢谢
我不使用 CSJS,这在我看来会使这项任务变得不必要的复杂,我会结合使用 SSJS 和部分刷新:
服务器端onclick
事件设置了一个viewScope
变量(requestScope
可能不够)像
viewScope("isDisabled", true)
同一事件对按钮周围的命名 xp:div
或 xp:panel
执行部分刷新,甚至可能仅对命名 xp:button
本身
按钮已禁用 属性 以编程方式评估您的 viewScope
变量:
disabled="#{javascript:viewScope("isDisabled")}"
应该可以解决问题。
您想在文档保存和页面重新加载期间禁用按钮 "Save"。
您的 basicLeafNode 是 placeBarActions 的子节点。
它被渲染到
<span class="lotusBtn">
<a href="javascript:;" onclick="javascript:...">Save</a>
</span>
不幸的是,没有 属性 "disabled" 的 href 标签可以轻松禁用按钮。
用 'return false;'
覆盖按钮的 onclick
事件。当用户在执行期间第二次单击按钮时,它什么也不做。
将颜色设置为灰色以显示按钮在执行期间被禁用。您必须使用 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 的一部分,所以它会在页面重新加载后恢复到原来的内容。
我有这样定义的放置栏按钮:
<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>
我想禁用 "Save" 按钮 onClick 事件,尤其是客户端 JS
谢谢
我不使用 CSJS,这在我看来会使这项任务变得不必要的复杂,我会结合使用 SSJS 和部分刷新:
服务器端
onclick
事件设置了一个viewScope
变量(requestScope
可能不够)像viewScope("isDisabled", true)
同一事件对按钮周围的命名
xp:div
或xp:panel
执行部分刷新,甚至可能仅对命名xp:button
本身按钮已禁用 属性 以编程方式评估您的
viewScope
变量:disabled="#{javascript:viewScope("isDisabled")}"
应该可以解决问题。
您想在文档保存和页面重新加载期间禁用按钮 "Save"。
您的 basicLeafNode 是 placeBarActions 的子节点。
它被渲染到
<span class="lotusBtn">
<a href="javascript:;" onclick="javascript:...">Save</a>
</span>
不幸的是,没有 属性 "disabled" 的 href 标签可以轻松禁用按钮。
用 'return false;'
覆盖按钮的 onclick
事件。当用户在执行期间第二次单击按钮时,它什么也不做。
将颜色设置为灰色以显示按钮在执行期间被禁用。您必须使用 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 的一部分,所以它会在页面重新加载后恢复到原来的内容。