2010-03-25 10 views
0

J'ai une boîte de dialogue modale présentée dans Yahoo UI. L'utilisateur sélectionne une valeur dans le dialogue "A", puis je souhaite présenter une autre boîte de dialogue modale pour collecter plus de données dans le dialogue "B".Comment "enchaîner" les boîtes de dialogue modales dans YUI 2?

J'ai utilisé le fichier YAHOO.widget.Dialog avec succès. Le problème semble être que vous ne pouvez pas lancer la fenêtre de dialogue "B" à partir de la fonction gestionnaire du dialogue "A". Alors, comment pouvez-vous lancer par programme une deuxième fenêtre de dialogue après que l'utilisateur a frappé le bouton "OK" sur le premier?

(j'avais essayé de créer un Listener supplémentaire pour un champ qui est mis à jour dans le dialogue « A » pour déclencher « B » de dialogue, mais cela ne fonctionne pas non plus.)

Merci ..

+0

Cela semble cassé. Peut-être pourriez-vous contourner la limitation en utilisant setTimeout pour ouvrir "B" après avoir fermé "A". Ou, si vous pouvez fermer "A" dans le gestionnaire, vous pourriez peut-être ouvrir "B" juste après. –

+0

Une minuterie est, malheureusement, inappropriée. Un comportement piloté par l'utilisateur est requis. Et non, ce n'est pas cassé. C'est une limitation du cadre. Cependant, je suis sûr que c'est résoluble, juste besoin de quelqu'un avec plus d'expérience avec YUI pour me diriger dans la bonne direction. – giulio

+0

Cela semble fonctionner - je suppose qu'il me manque quelque chose dans la question. J'ai un dialogue modal (pour l'édition de certaines données) avec les boutons save et cancel. La fonction onclick du bouton de sauvegarde déclenche une deuxième boîte de dialogue modale "veuillez patienter". –

Répondre

1

Consultez la documentation: http://developer.yahoo.com/yui/container/dialog/#events. Le code suivant devrait faire l'affaire:

var firstDialog = new YAHOO.widget.Dialog('firstDialog', { postmethod: "manual" }); 

firstDialog.manualSubmitEvent.subscribe(function (type, args) { 

    var nextDialog = new YAHOO.widget.Dialog('nextDialog', { }); 

    /* more configuration stuff... */ 

    nextDialog.render(); 
    nextDialog.show(); 

}); 

firstDialog.render(); 
firstDialog.show(); 

Cela gère lorsque le formulaire doit être soumis, que je pense que ce que vous entendez par sélectionner une valeur, mais si me laisse pas savoir et je peux donner un peu d'aide sur ce situation.

+0

merci pour le pointeur .. je n'ai jamais compris que "manuelsubmitevent". YUI est assez puissant, mais a encore besoin de doco plus explicite .. vous le fera savoir – giulio

Questions connexes