extjs 4 textarea自动完成/建议

时间:2015-09-18 18:38:30

标签: javascript autocomplete extjs4 extjs4.2 autosuggest

我们的新要求之一是拥有一个公式编辑器,用户可以在其中输入某种公式(excel类型),例如

IF($Field1 < 1000, 'Message 1') AND
IF($Field2 > 10000,'Message 2')

所以这里的想法是我们应该为&#34;功能(IF)&#34;做自动建议(上下文)。 ,&#34; Field(Field1和Field2)&#34;,&#34; Condition(AND)&#34; ,&#34;运营商(&gt;)&#34;作为用户在textarea中的类型(因此它不会是多行)。

所以基本上我们试图模仿jira所具有的相同功能,它自动建议分辨率,fixVersion等如下所示
到目前为止我已经尝试了this Sencha Forum但是我得到的行为像我们不想要的多选组合框。
所以我的问题是 1. textarea的上下文自动完成
2.语法解析公式以获取上下文。

Jira's Contextual autosuggestion
enter image description here

我真的需要帮助,因为谷歌不是很有帮助。

2 个答案:

答案 0 :(得分:1)

这里我修复了我的自动建议问题

 var textField = Ext.create('Ext.form.field.TextArea', {
        renderTo: Ext.getBody(),
        enableKeyEvents: true,
        width: 200,
        height:200
    });   


    textField.on('keypress', function(f){
      // debugger;
        var val = f.getValue();

        if(val){
            var query = val;
            console.log(query);
            store.clearFilter();

            store.filter('Name', query);

            dataview.show();

        } else {
            dataview.hide()
        }


    }, this, {
        buffer: 200
    });



    var dataview = Ext.create('Ext.view.View', {
        height: 200,
        width: 50,
        store: store,
        itemTpl: '{Name}',
        renderTo: Ext.getBody(),
        hidden: true,
        listeners: {
            itemclick: function(view, rec){
                var val = textField.getValue();

                val = val.replace(nameRegex, '@' + rec.get('Name'));

                textField.setValue(val);

                dataview.hide();

                textField.focus();
            }
        }
    });

答案 1 :(得分:0)

创建一个包含您想要建议的所有可能值的组合框用户和textarea的按键事件按照键入的字符填充已过滤记录的组合。
示例 - 我键入fieldName,然后键入空格,本例通过filter combo显示所有运算符。

相关问题