我正在使用Liferay附带的Alloy UI自动完成插件。我的汽车完整部分工作正常。
现在,我想要做的是我想捕获从自动完成自动建议中选择的数据,然后进行操作。
假设我在自动完成中写ry
,然后列表如下:
ryan
rynda
ryab
现在,如果我点击任何项目或通过键盘箭头键选择并按回车键,它将被复制到自动完成源输入框。但我想要的是,当用户选择特定的一个项目时,我想返回并且什么也不做,我们可以说ryab
。
我找到了活动
autocomplete.on('itemSelect',function(event) {
};
当我选择任何项目时会触发,但我不知道如何获取所选对象以及如何通过比较对象返回false /什么都不做。
任何帮助将不胜感激!
答案 0 :(得分:3)
以下代码可以解决这个问题:
var expandit = false;
autocomplete.on('itemSelect', function(event) {
var currentValue = autocomplete.inputNode.get('value');
//do comparison logic with currentValue here, and eventually set input node value to empty string
if (currentValue == 'foo') {
expandit = true;
autocomplete.inputNode.set('value', '');
// stop event propagation
event.stopImmediatePropagation();
return false;
}
});
autocomplete.on('containerCollapse', function(event) {
//reopen the menu in case of "do nothing" selection
if (expandit) {
autocomplete._sendQuery(autocomplete.inputNode.get('value') + '*');
expandit = false;
}
});
Autocomplete
小部件的合金用户界面Reference API和Source Code非常有用。
以编程方式显示您可以使用的菜单:
autocomplete._sendQuery(autocomplete.inputNode.get('value') + '*');