Alloy UI中的自动完成项目选择

时间:2012-11-20 01:28:43

标签: javascript autocomplete liferay alloy-ui

我正在使用Liferay附带的Alloy UI自动完成插件。我的汽车完整部分工作正常。

现在,我想要做的是我想捕获从自动完成自动建议中选择的数据,然后进行操作。

假设我在自动完成中写ry,然后列表如下:

ryan
rynda
ryab

现在,如果我点击任何项目或通过键盘箭头键选择并按回车键,它将被复制到自动完成源输入框。但我想要的是,当用户选择特定的一个项目时,我想返回并且什么也不做,我们可以说ryab

我找到了活动

autocomplete.on('itemSelect',function(event) {
};

当我选择任何项目时会触发,但我不知道如何获取所选对象以及如何通过比较对象返回false /什么都不做。

任何帮助将不胜感激!

1 个答案:

答案 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 APISource Code非常有用。


以编程方式显示您可以使用的菜单:

autocomplete._sendQuery(autocomplete.inputNode.get('value') + '*');