2015-06-08 34 views
1

我在使用包含一些重複按鈕的XPage中的重複控件。XPages:如何禁用重複控制中的按鈕

如何獲取單個按鈕或單擊按鈕後淡出某個按鈕? 我曾嘗試下面的代碼上的onClick甚至是客戶方,但沒有奏效

var id = dojo.query("[id='ActionBtn']")[0]; 
id.setDisabled(true); 

回答

2

獲取客戶端ID與#{id:ActionBtn},並用它來獲取按鈕元素來禁止它:

document.getElementById("#{id:ActionBtn}").disabled=true 

或點擊

document.getElementById("#{id:ActionBtn}").style.visibility='hidden' 

後隱藏

例子:

<xp:repeat 
    id="repeat1" 
    rows="30"> 
    <xp:this.value><![CDATA[#{javascript:[1,2,3,4]}]]></xp:this.value> 
    <xp:button 
     value="Label" 
     id="ActionBtn"> 
     <xp:eventHandler 
      event="onclick" 
      submit="false"> 
      <xp:this.script><![CDATA[ 
        document.getElementById("#{id:ActionBtn}").style.display='none' 
      ]]></xp:this.script> 
     </xp:eventHandler> 
    </xp:button> 
    <br /> 
</xp:repeat> 
+0

但我喜歡禁用一個按鈕,而不是所有的,我如何得到ActionBtn的索引[0] –

+1

由於按鈕在重複控制中,每個按鈕都有自己的ID。你用'#{id:ActionBtn}'得到了id# –

+0

我添加了我的測試示例:只有點擊按鈕消失。 –

0

在客戶端的事件,你可以得到全局對象thisEvent事件信息。

您可以通過thisEvent.srcElement得到觸發事件的dom元素。 所以我想你可以這樣做:

thisEvent.srcElement.style.display = 'none'; 
//... 

而且這樣你可以避免做DOM樹的搜索。

相關問題