[英]Events into all properties of a control vs events into an event handler, in Xpages
我試圖了解存在於控件的“所有屬性”選項卡中的事件(onclick,onfocus等)與控件的事件處理程序中的相同事件之間的區別。
當嘗試在“所有屬性onclick”中添加客戶端或服務器代碼時,它會在頁面加載之前執行,而我什至不嘗試做任何事情...(與onfocus,onkeydown等相同,它們都在頁面加載時立即執行)。
有什么解釋嗎? (或與擴展鏈接)(當然,我總是與事件處理程序一起工作,我對此表示滿意,但是...我只是想知道。)
基本上,添加到組件屬性中的事件是HTML組件的本機事件。 您只能在此處運行客戶端javascript。
<input type="text" onchange="doStuff()" class="xspInputFieldEditBox" name="view:_id1:inputText1" id="view:_id1:inputText1">
添加到eventHandler
中的事件是綁定事件。 XPages有一個eventHandler渲染器,該渲染器創建一個javascript函數,並在加載時通過XSP.attachEvent
方法將其附加到組件中。
事件處理程序還按順序提供多個CSJS事件。 因此,您可以僅通過返回false來停止其余代碼。 例如:
<xp:eventHandler
event="onchange"
submit="false">
<xp:this.script>
<xp:scriptGroup>
<xp:executeClientScript
script="if(! confirm('Confirm the next action?')) return false;"></xp:executeClientScript>
<xp:executeClientScript
script="doStuff();"></xp:executeClientScript>
</xp:scriptGroup>
</xp:this.script>
</xp:eventHandler>
如果用戶在確認對話框上單擊“取消”,則此腳本組將停止。
此事件機制具有其他功能。 它可以創建返回到服務器的GET / POST ajax請求(通過托管bean或SSJS的服務器端代碼),並在頁面上進行部分/全部刷新,此外還可以控制驗證,部分執行等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.