Search code examples
extjsspell-checking

Spellcheck for Extjs textfields


I need spellcheck in an extjs textfield. A textarea doesn't work because I need it to only allow a user to enter a single line of input - no enter key. Any way to enable spellcheck for the textfield?


Solution

  • I found a way to get around the single line requirement and use a textarea, which by default uses spellcheck. To force the textarea to be a single line add this to your textarea:

    xtype: 'textarea',
    grow: true,
    growMax: 32,
    enableKeyEvents: true,
    listeneters: {
        keydown: 'disableNewLine'
    }
    

    And in your controller, add the function to disable the new line.

    disableNewLine: function(textarea, e, eOpt) {
        if(e.keyCode == 13) {
            e.stopEvent();
        }
    }    
    

    This prevents the user from adding a new line to their input just like a textfield would, but utilizes spellcheck. Also, 32 is the default height of a textfield, so it looks the exact same. Just setting the height doesn't work, the default seems to override that.