cloner un objet (fieldset)
Bonjour
J'essaye de faire un formulaire dynamique avec possibilité d'ajouter des relations à la volée (par exemple, pouvoir ajouter autant d'auteur que l'on veut à un article).
J'ai actuellement une jolie fonction qui fonctionne très bien pour les champs input classiques et les champs avec date-picker:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| addRelation = function(_caller) {
var parentFieldset = Ext.getCmp($('#'+_caller.id).prev('fieldset').attr('id'));
var prevFieldset = $('#'+_caller.id).prev('fieldset').find('fieldset:last');
prevFieldset = Ext.getCmp(prevFieldset.attr('id'));
nextFieldset = prevFieldset.cloneConfig();
nextFieldset.cascade(changeId);
parentFieldset.add(nextFieldset);
parentFieldset.doLayout();
}
/**
* Function avoiding id's dupplication
*/
function changeId(_target) {
if(_target.autoCreate !== undefined) {
_target.autoCreate.id = Ext.id();
var nameRE = new RegExp('\\[(\\d+)\\]');
var matches = nameRE.exec(this.name);
var tmp = _target.autoCreate.name;
_target.autoCreate.name = tmp.replace(nameRE, '['+(parseInt(matches[1],10)+1)+']');
}
} |
Par contre, même si on voit bien les nouveaux champs de type combobox de ext s'afficher, on ne voit pas leurs données ! Impossible d'avoir la liste déroulante avec les options.
La liste n'est même pas générée à la fin du body comme elle l'est avec les combobox qui sont initialement créés.
Existe-t-il un moyen de les faire fonctionner ?
Je trouve ça étrange qu'un framework aussi puissant ne gère pas ce genre de cas de figure :?
Merci d'avance pour votre aide !