组合框未显示错误,警告等状态,并在边框周围高亮显示。但这确实改变了状态。例如,如果它是错误状态,并且如果我尝试在组合框中输入新值,它将在该框附近显示“无效条目”提示。但是,框的边界永远不会以红色突出显示。下面是代码:
XML.view
<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:l="sap.ui.layout">
<Dialog id......>
<ComboBox id="combo1" change="cChanged" items="{path: '/results'}">
<items>
<core:Item key="{ID}" text="{Name}"/>
</items>
</ComboBox>
</Dialog>
Controller.js
cChanged: function(oEvent) {
var newval = oEvent.getParameter("newValue");
var key = oEvent.getSource().getSelectedItem();
if (newval !== "" && key === null) {
sap.ui.getCore().byId("combo1").setValueState("Error");
oEvent.getSource().setValue("");
sap.m.MessageToast.show("Please select from existing IDs")
flag = false;
} else {
oEvent.getSource().setValueState('None');
}
答案 0 :(得分:0)
您还可以通过使用combo1
事件来访问oEvent.getSource()
控件实例,或者使用byId() from the sap.ui.core.Fragment
类而不是sap.ui.getCore().byId()
此外,如果您编写逻辑只是为了验证组合框中用户输入的内容是否有效,请考虑使用sap.m.Select控件替换ComboBox
。
ComboBox
和Select
具有相同的外观,但是Select
不允许手动输入。如果您使用属性forceSelection