6

I want to be able to convert a html form to an ExtJs form. I have read that you have to do something with applyTo but wasn't really sure about what to do.

I hope someone can provide me with some help,

Cheers

thirtydot
  • 224,678
  • 48
  • 389
  • 349
neolaser
  • 6,722
  • 18
  • 57
  • 90

2 Answers2

5

If you want to convert every element in a form to an ExtJS element, someone on the Sencha forums has posted a solution (which I will cross-post here):

function convertForm(formId) {
    var frm = new Ext.form.BasicForm(formId);
    //frm.render();

    var fields = frm.getValues()

    for (key in fields) {

        var elem = Ext.get(key);
        if (elem && elem.hasClass('combo-box')) {
            var cb = new Ext.form.ComboBox({
                transform: elem.dom.name,
                typeAhead: true,
                triggerAction: 'all',
                width: elem.getWidth(),
                forceSelection: true
            });
        }
        else 
            if (elem && elem.hasClass('date-picker')) {
                var df = new Ext.form.DateField({
                    format: 'm/d/Y'
                });
                df.applyTo(elem.dom.name);
            }

        if (elem && elem.hasClass('resizeable')) {
            var dwrapped = new Ext.Resizable(elem, {
                wrap: true,
                pinned: true,
                width: 400,
                height: 150,
                minWidth: 200,
                minHeight: 50,
                dynamic: true
            });
        }
    }
}
NT3RP
  • 15,262
  • 9
  • 61
  • 97
0

Additionally, who is interested, buttons can be converted too:

 var objArray = Ext.DomQuery.select("input[type=button]");      
 Ext.each(objArray, function(obj) {      
     var btn = new Ext.Button({      
         text : obj.value,      
         applyTo : obj,      
         handler : obj.onclick,      
         type : obj.type      
     });      
     btn.getEl().replace(Ext.get(obj));      
 });   

Information was found here (not in English, sorry).

Andron
  • 6,413
  • 4
  • 43
  • 56