2010-01-09 12 views
0

J'ai une application Grails avec un formulaire dedans. Une fois que l'utilisateur a entré les données et les a soumises, et qu'il a été validé etc. J'ai besoin d'un message pour faire apparaître une petite fenêtre pour donner à l'utilisateur une rétroaction - il doit apparaître, plutôt que d'être affiché sur la page. Quelqu'un peut-il me conseiller sur la meilleure façon de le faire?fenêtre de message popup dans les grails?

Répondre

3

J'ai implémenté le même mécanisme pour mon application, et j'utilise le plugin jQuery 'smartmodal' (utilisé par le plugin Nimble à l'origine). Voir here

Il vous suffit de rediriger la requête dans le code de validation de commande à une page GSP contenant le code suivant:

<script type="text/javascript" src="${resource(file: 'jquery-1.3.2.js')}"></script> 
<script type="text/javascript" src="${resource(file:'jquery.smartmodal.js')}"></script> 
<LINK rel="stylesheet" href="./css/smartmodal.css"> 
... 
<body> 
... 
<g:javascript> 
$(function() { 
$("#msg").hide(); 
$("#msg").modal({hide_on_overlay_click:false}); 
$("#msg").modal_show();}); 
</g:javascript> 
<div id="msg"> 
My feedback message is here 
</div> 
<g:link controller="..." action="...">Close</g:link> 

J'espère que cela aide,

Fabien

EDIT: Un extrait du fichier smartmodal.css qui affichera «l'effet modal» est:

#modal_content { 
    display: none; 
    position: fixed; 
    left: 50%; 
    padding: 0px; 
    top: 10%; 

    background: #FFF; 
    border: 0px solid #d2d2d2; 

    width: 400px; 
    margin-left: -200px; 
    text-align: left; 
} 

#modal_overlay { 
    background-color: #000; 
} 

Toutefois, si vous voulez que le dossier complet, il est disponible à l'intérieur des grands Nimble Grails de plugin

+0

Salut, merci pour cela - je me bats un peu avec elle cependant, quand il redirige ouvre cela dans le fenêtre principale plutôt qu'une petite fenêtre. Une idée d'où je vais mal? – ellander

+0

Si la fenêtre principale apparaît à la place de la fenêtre modale, cela signifie que la fonction 'modal_show()' n'est pas appelée ou que le fichier CSS smartmodal.css n'est pas inclus. Je vérifierais que les fichiers JS et CSS sont inclus dans votre page html. J'ai mis à jour le code pour inclure le fichier CSS – fabien7474

+0

ok super, je ne pouvais trouver un modal.css dans le zip du lien que vous avez suggéré, mais cela ne semble pas fonctionner - est le smartmodal.css différent du modal.css un? merci beaucoup pour votre aide – ellander