2012-03-22 54 views
0

我有一個禁用的複選框。我點擊一個按鈕,將該複選框的值設置爲「檢查」。當我去保存時,複選框會失去它的價值。有人有主意嗎?這裏是一個簡單的樣機:已禁用複選框保存時丟失值

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view 
    xmlns:xp="http://www.ibm.com/xsp/core"> 
    <xp:this.data> 
     <xp:dominoDocument 
      var="MainForm" 
      formName="MainForm" /> 
    </xp:this.data> 
    <xp:checkBox 
     text="CheckBox" 
     id="CheckBox" 
     value="#{MainForm.CheckBox}" 
     disabled="true" 
     checkedValue="Y" 
     uncheckedValue="N"> 
    </xp:checkBox> 
    <xp:br></xp:br> 
    <xp:button 
     id="setBc" 
     value="Set CheckBox"> 
     <xp:eventHandler 
      event="onclick" 
      submit="true" 
      refreshMode="partial" 
      refreshId="CheckBox"> 
      <xp:this.action><![CDATA[#{javascript:getComponent("CheckBox").setValue("Y");}]]></xp:this.action> 
     </xp:eventHandler> 
    </xp:button> 
    <xp:button 
     value="Save" 
     id="button5"> 
     <xp:eventHandler 
      event="onclick" 
      submit="true" 
      refreshMode="complete"> 
      <xp:this.action><![CDATA[#{javascript:MainForm.save();}]]></xp:this.action> 
     </xp:eventHandler> 
    </xp:button> 
</xp:view> 
+0

它的確定,如果現在的行爲是正確的釋放發生,但它uncorrect到現在?與迄今爲止開發的所有應用程序兼容性如何? – 2012-06-19 12:12:57

回答

6

禁用控件不包括在頁面提交中。

您可以將禁用的複選框與xp:inputHidden控件組合在一起,該控件是頁面提交中包含的隱藏輸入字段。

+0

看起來雖然禁用組合框與頁面一起提交?那是我困惑的地方。 感謝您輸入隱藏的想法。 – 2012-03-22 16:24:57

+1

請記住,即使將值發佈到服務器,如果與值關聯的組件被視爲禁用,則在UPDATE_COMPONENT_MODEL期間該值仍將被忽略,如果數據源使得可以理解的假設禁用的字段沒有改變。我不知道這是否是實際的行爲,但會進行調查。 – 2012-03-23 03:36:42

+0

謝謝蒂姆。我相信這是真的,如果值在禁用字段上沒有改變,則該值被忽略。 – 2012-05-03 13:41:45

0

這可能是Domino 8.5.3的特定問題(如果這是您正在使用的)。 我們已經注意到,自從我們升級到8.5.3以來,我們遇到了一個問題(在標準的經典多米諾骨牌頁面上),其中標記爲「禁用」的字段沒有被保存到文檔中。 我們必須通過不使用「適當」字段來解決此問題,該字段對於稍後必須保存的值而被禁用。 另一個解決方法是在發佈腳本之前刪除禁用的設置。

我們相當肯定這一切開始與8.5.3

+0

是的。我在8.5.3上。 – 2012-03-23 13:08:54

+0

根據W3C HTMl規範第17.13.2章的規定,只有一個成功的控件對於用表單進行提交是「有效的」,並且禁用的控件不能按照規範成功執行。因此,Domino的行爲是正確的。 – leyrer 2012-03-24 19:43:26