2015-09-17 157 views
1

我有一個main.controller.js,我想檢查複選框的值。如果複選框已被選中,將顯示第一個flexbox,並且第二個flexbox不會顯示在片段中。從SapUI5複選框中獲取值

這是我controller.js:

checkDone: function() { 
    var checkV = this.byId("ch1").getSelected();// not working 
} 

這是我fragment.xml之

<CheckBox id="ch1" select ="checkDone" text="Check"></CheckBox> 
<FlexBox class="sapUiSmallMarginEnd" id="f1"> 
    <Input value=""></Input> 
</FlexBox> 
<FlexBox direction="Column" id="f2"> 
    <Input value=""></Input> 
</FlexBox> 
+0

訪問絕對ID可能無法正常工作,因爲它可以以視圖的ID作爲前綴。 – hirse

+0

@hirse當您從DOM訪問時,這是正確的。 View.byId函數在OpenUI5 View類中定義。 – fatihpense

回答

0

此代碼有效(請參見sap.m.Checkbox here的示例)。

只是一個建議:在您的複選框的「選擇」的處理程序使用:

this.byId("ch1").getSelected(); 

爲了複選框是否被選中與否,但該值已經給出了選擇處理程序的參數:

checkDone: function (oEvent) { 
    var bSelected = oEvent.getParameter('selected')); 
} 

Simmilar適用於sap.ui.commons.Checkbox API。檢查change event

+0

感謝您的評論。我試過'var sel = oEvent.getParameter('selected');' 。這是工作。但'checkV'不起作用。 – Emre

+0

Woudl你應該在jsdiffle中分享你的代碼或者類似的東西,這樣它可以真正看到它在做什麼? – Vlad

0

相反getSelected()的嘗試getChecked()。

getChecked()將基於選中/未選中來返回true或false。

+0

'sap.ui.commons.CheckBox'具有'getChecked()',移動庫中的CheckBox使用'getSelected()'。基於其他控件的用法,它看起來更像我的'sap.m.CheckBox'。 – hirse

0

它看起來像View.byId函數以其初始形式返回一個元素。當您找到DOM中的元素時,getSelected()函數按預期工作。