Search code examples
messageboxextjs3

Extjs messagebox prompt limit the text input entered by user


I am using http://dev.sencha.com/playpen/docs/output/Ext.MessageBox.html#prompt to display an extjs prompt where the user can enter some text and click Ok. Now if I want to restrict the user to enter text not more than 100 characters, what should I do?

I understand I need to write some kind of an eventhandler but what is the event? Is it possible to look at a code sample?


Solution

  • When you invoke MessageBox.prompt it will return instance of the singleton which can be used to get dom reference of textbox element, this element can be used to specify attribute maxlength which can be used to limit length of text that can be entered

    var dlg = Ext.MessageBox.prompt('Name', 'Please enter your name:', function(btn, text){
        if (btn == 'ok'){
            // process text value and close...
        }
    });
    
    var textboxEl = dlg.getDialog().body.child('input[class=ext-mb-input]', true);
    textboxEl.setAttribute('maxlength', 1);   // second parameter is character length allowed so change it according to your need
    

    Reference:

    Character Limit in HTML