我如何限制组合框中的用户输入,以仅在SAPUI5中模拟数据
我有一个场景,我想限制用户只输入文本,只加载到组合框中看到的MultiComboBox示例。 [请注意,这不是我的jsbin。请张贴在这个线程你的答案]我如何限制组合框中的用户输入,以仅在SAPUI5中模拟数据
http://jsbin.com/sicixisozi/edit?html,js,output
在上面的例子中,只允许用户进入存在于组合框的字符,比如输入“S”会提示输入无效,防止用户从打字。然而,我不使用MultiComboBox但将使用ComboBox代替并且此功能未在缺省SAPUI5 组合框发现
http://jsbin.com/xenidoh/embed?html,output
var mcb = new sap.m.ComboBox({
如见于上述例子中,用户并不限于并且能够向组合框输入任何内容。任何建议如何我可以在MultiComboBox中实现相同的功能到组合框?
关于组合框的更改事件,请检查oComboBox.getSelectedkey()是否为空或空。如果它是空的,这意味着用户没有选择正确的值,因此返回一个错误。
oComboBox.attachChange(function(oEvent){
var newval = oEvent.getParameter("newValue");
var key = oEvent.getSource().getSelectedItem();
if (newval !== "" && key === null){
oEvent.getSource().setValue("");
oEvent.getSource().setValueState("Error");
}else{
oEvent.getSource().setValueState("None");
}
});
,或者如果你正在使用XML的观点 - 功能添加到change=""
其中oComboBox是您的组合框。
我在说如何实现在MultiComboBox中找到相同的功能ComboBox – user1166085
@ user1166085请看我更新的答案 - 我很快嘲笑了一些东西 – neeko
这是一个非常优雅的方式来实现功能!谢谢! – user1166085
只是一个建议:如果你想完全禁用字,就可以附加一个onAfterRendering事件委托功能到ComboBox。在该功能中,您可以完全禁用输入框。这意味着用户不能在该字段中输入任何内容。您还可以使用相同的功能来检查用户输入的内容,将其与组合框中显示的列表进行匹配,然后允许或禁止键入。 – Sid