【问题标题】:extjs 4 textarea auto complete/suggestionextjs 4 textarea 自动完成/建议
【发布时间】:2015-12-16 00:13:13
【问题描述】:

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

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

所以这里的想法是我们应该为 "Function(IF)" , "Field(Field1 and Field2)","Condition (AND)" , "Operator (>)" 作为用户类型做自动建议(上下文)在文本区域中(所以它不会是多行)。

所以基本上我们试图模仿 jira 所具有的相同功能,它会自动建议分辨率、fixVersion 等,如下所示我们不想要的盒子。
所以我的问题是
1. textarea 的上下文自动完成
2. 对公式进行语法解析以获取上下文。


还有这个

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

【问题讨论】:

    标签: javascript autocomplete extjs4 extjs4.2 autosuggest


    【解决方案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();
                }
            }
        });
    

    【讨论】:

    【解决方案2】:

    创建一个组合框,其中包含您要建议用户的所有可能值,并在 textarea 的按键事件中根据键入的字符使用过滤记录填充组合。
    示例 - 我输入一个字段名,然后输入一个空格,在这种情况下,按过滤器组合显示所有运算符。

    【讨论】:

    • 组合框多文本 - 你能说得更清楚吗?
    • 我的意思是,组合框不允许你改变高度,我想要的是一个文本区域,用户可以像其他 HTML 编辑器一样一次看到多行..
    猜你喜欢
    • 2022-01-22
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多