neolaser
neolaser

Reputation: 6907

ExtJS: Convert html form to ExtJS

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

Upvotes: 6

Views: 5330

Answers (2)

Andron
Andron

Reputation: 6621

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).

Upvotes: 0

NT3RP
NT3RP

Reputation: 15370

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
            });
        }
    }
}

Upvotes: 5

Related Questions