xpages 按钮 - 可以在事件 运行 时更改文本或项目?

xpages button - possible to change text or item while events are running?

当onclick事件下的代码为运行(部分刷新未完成)时,是否可以更改元素上的文本?

我们为 xp:button 元素准备了类似的东西。我们更改文本并添加一个 FontAwesome“纺车”,直到代码完成。在我们的功能开始时,我们更改文本和图标,在代码完成后 - 我们恢复为原始 xp:button 文本。 我们使用 jQuery 来修改按钮元素,基本上您也可以使用普通的 JavaScript (innerHTML) 或 dojo。

<xp:button value="Save" id="button-save" xp:key="submitSave">
   <xp:eventHandler event="onclick" submit="false">
      <xp:this.script><![CDATA[submitSaveFunction();]]></xp:this.script>
   </xp:eventHandler>
</xp:button>

submitSaveFunction {
$("button[id$=button-save]").attr("disabled", "true").addClass("disabled").html('<i class="fa fa-spinner fa-pulse fa-fw"></i> Saving');
.....your code.....
$("button[id$=button-save]").removeAttr("disabled").removeClass("disabled").html('Save');
}

XPages 方法是使用 onStart 和 onComplete 属性(还有 onError):

<xp:button value="Search" id="button1">
    <xp:eventHandler event="onclick" submit="true" refreshMode="partial" 
        onStart="changeText()" onComplete="unchangeText()">
            <xp:this.action><![CDATA[#{javascript:serverFunction();}]]></xp:this.action>
    </xp:eventHandler>
</xp:button>

您可以使用“#{id:button1}”将按钮的 ID 传递给函数,并使用它在 CSJS 中检索按钮。