2009-01-07 9 views
1

J'essaye de cloner des composants de formulaire en utilisant .clone() de JQuery (en fait, je clone une collection de champs en clonant l'élément container). Tout a bien fonctionné sauf que le champ date, les combobox ne fonctionnent pas, même la validation de minLength, etc. ne fonctionne pas non plus.clonage de composants ExtJS en utilisant JQuery

Soit dit en passant, je suis juste transformer un vieux champs de formulaire HTML aux champs de formulaire de ext à l'aide ApplyTo

Répondre

2

Le problème est que jQuery clone() ne clone pas les gestionnaires d'événements associés aux éléments DOM. Mais même si vous utilisez clone (true), que copie les gestionnaires d'événements, cela ne fonctionne toujours pas, car vous devez également cloner l'objet Ext du côté JavaScript.

Vous avez vraiment besoin d'utiliser les outils fournis par Ext pour créer de nombreux contrôles similaires . Un bon début est create custom Ext components, que vous pouvez ensuite instancier plus facilement plusieurs fois.

1

Pour commencer, vous pouvez essayer d'utiliser

.clone(true) 

de sorte que tous les gestionnaires d'événements pour un élément sont copiés. En dehors de cela, je soupçonne Extjs de faire d'autres choses géniales lors de la construction de ses commandes, c'est donc probablement la première étape pour le faire fonctionner. En regardant autour rapidement sur les forums extjs je ne vois pas beaucoup d'informations sur les widgets de clonage.