我是SAPUI5的新手,并试图获取SAPUI5中的RadioGroupButton的选定按钮索引。
这样做的原因是隐藏或显示更多调查问题。并且表单基于两种语言,因此获取索引而不是selectedButton的文本会更好。
这是我的XML和控制器代码。感谢您提供任何帮助,因为我不知道为什么它无法识别控制台中的按钮索引并显示它未定义!
XML
<VBox class="sapUiMediumMargin">
<VBox id="Q1">
<Label labelFor="rgb1" text="{i18n>Q1}" />
<RadioButtonGroup id="rbg1" columns="2" width="100%">
<RadioButton id="RB1-1" text="{i18n>radio.button.no}" select="onSelect"/>
<RadioButton id="RB1-2" text="{i18n>radio.button.yes}" select="onSelect"/>
</RadioButtonGroup>
<!--Small Margin-->
<HBox class="sapUiSmallMargin"/>
</VBox>
Controller
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/core/Element",
"sap/m/MessageToast"
], function(Controller, Element, MessageToast) {
"use strict";
return Controller.extend("aaaa.comform.controller.view1", {
onSelect: function() {
var oRBGroup = this.getView().byId("rbg1");
var oButtonSelectedIndex = oRBGroup.getSelectedButtonIndex();
var oVBox1 = this.getView().byId("Q2"); // another Hidden question to be shown if answer is Yes
if (oButtonSelectedIndex === 1)) { // 1 means answer is Yes
oVBox1.setVisible(true);
// console.log(getSelctedButton);
} else {
oVBox1.setVisible(false);
}
}
});
});
当选择事件被触发时,您的处理程序将被Event对象调用。您可以在此处select
读取https://sapui5.hana.ondemand.com/#/api/sap.m.RadioButtonGroup%23events/select事件上可用的参数。您可以使用selectedIndex
参数。
首先在XML视图中,将侦听器移到RadioButtonGroup。这样就无需为该组中的每个RadioButton添加侦听器。
XML
<RadioButtonGroup id="rbg1" columns="2" width="100%" select="onSelect">
Controller
onSelect: function (oEvent) {
var iIndex = oEvent.gatParameter("selectedIndex"),
oGroup = oEvent.getSource();
if (iIndex === 1) {
...
} else {
...
}
}