2010-09-24 5 views
1

J'ai deux: g textfields dans le premier que je devrais écrire un numéro permet de dire 12 et dans la g: textfield à côté de lui il devrait charger le nom prédéterminé pour le numéro 12.Grails: Comment faire un g: textfield pour charger des données et l'afficher dans un autre g: textfield?

Le premier est nommé ' expéditeur 'et l'autre' expéditeur ' Chaque fois que j'écris le code 12 dans le champ' expéditeur ', il doit retourner le nom de l'expéditeur dans la case' expéditeur '.

Merci d'avance!

Exemples:

http://i56.tinypic.com/2wfn19z.jpg

Si j'écris le numéro 12, il devrait revenir USPS

http://i53.tinypic.com/2i90mc.jpg

Et chaque numéro devrait avoir un autre 'shipperName'

Merci encore !

Répondre

2

Pour relier deux chaînes, il est plus facile d'utiliser un objet pour créer un dictionnaire/carte, comme indiqué ci-dessous;

$('#input1').bind('keyup',function() { 
    var map = { 
     "1":"One", 
     "2":"Fish", 
     "3":"Bar" 
    }; 

    $('#input2').val(map[$(this).val()]); 
}); 

Vous pouvez le voir en action ici: http://www.jsfiddle.net/dCy6f/

Si vous voulez que la deuxième valeur que pour mettre à jour lorsque l'utilisateur a fini de taper dans le premier champ d'entrée, le changement « keyup » à « changement ».

2

C'est assez facile si vous utilisez jQuery. Découvrez les gestionnaires d'événements ("flou" est celui que vous voulez qui se produit lorsque l'utilisateur quitte la boîte numérique).

Par exemple:

$("#shipper").blur(function() { 
    $("#shipperName").load(
     "${createLink(controller: 'shipper', action: 'resolveShipper')}?id=" + 
     $("#shipper").val() 
    ); 
}); 

Le $ (this) .val() à la fin est la valeur du champ d'entrée l'utilisateur vient de quitter.

Et l'action « ShipperController.resolveShipper » ressemblerait à quelque chose comme ceci:

def resolveShipper = { 
    render text: Shipper.get(params.id).name, contentType: "text/plain" 
} 

Il y a d'autres choses que vous pouvez faire, comme le remplissage automatique dans le champ shipperName comme les types d'utilisateur sans quitter la modifier champ, probablement après un délai. Cependant, le gestionnaire d'événements reste le même, juste l'événement change (de "flou" à "changer" ou quelque chose comme ça)

+0

Comment puis-je faire fonctionner jQuery? Dois-je télécharger le plugin jQuery ?? – randomizertech

+0

Pour que cela fonctionne, il vous suffit de l'inclure en haut de la page et tout devrait être réglé. Regardez la documentation de jQuery pour plus d'informations. –

+0

Donc je n'ai pas besoin d'installer jQuery du tout? Juste en écrivant que sur le dessus je devrais aller bien? – randomizertech