2010-09-29 5 views
0

J'ai deux g: sélectionne les combobox que je veux ajouter à la liste de sélection multiple lorsque je clique sur une image.Grails: Ajouter une valeur de deux g: sélectionner une liste de sélection multiple HTML

est ici la fonction javascript:

function addToList(list,firstOpt, secOpt) 
      { 
      var y = document.createElement('option'); 
      y.text = firstOpt + ' - ' + secOpt; 
      y.value = firstOpt+'-'+secOpt; 
      var elSel = document.getElementById(list); 
      try { 
      elSel.add(y, null); // standards compliant; doesn't work in IE 
      } 
      catch(ex) { 
      elSel.add(y); // IE only 
      } 
      } 

Je pense que le problème est ici le bouton réelle:

<img src="${resource(dir:'images',file:'arrow.png')}" onclick="addToList('BList','first','second')"/> 

quand je clique dessus, « première-deuxième » est ajouté à la liste, pas la valeur réelle des cases g: select. J'ai également essayé ${first} et ${second} mais n'ai eu aucune chance.

Toute aide est grandement appréciée, merci!

Répondre

1

Vous n'avez aucun code qui récupère les valeurs des première et seconde listes de sélection.

Vous auriez probablement besoin de quelque chose comme ceci:

function addToList(destinationList, sourceList1Id, sourceList2Id) { 

    // your select lists will need ids 
    // e.g. <g:select id="listOneId" .../> 

    var list1 = document.getElementById(sourceList1Id); 
    var list2 = document.getElementById(sourceList2Id); 

    var list1value = list1.options[list1.selectedIndex].value; 
    var list2value = list2.options[list2.selectedIndex].value; 

    // the rest of your addToList() function, replacing 'firstOpt' 
    // and 'secondOpt' with 'list1value' and 'list2value' respectively 
    // ... 
} 

Vous pouvez alors l'utiliser avec les sélections suivantes:

<!-- sources --> 
<g:select id="fooList" .../> 
<g:select id="barList" .../> 

<!-- destination --> 
<g:select id="bazList" .../> 

<img ... onclick="addToList('bazList', 'fooList', 'barList');"/> 
+0

Mais je prévois sur l'utilisation de cette fonction dans deux ou trois listes et je ne Je ne veux pas écrire 3 fonctions différentes pour chacun, c'est pourquoi j'ai eu ces trois arguments. – randomizertech

+0

Droit - si vous regardez mon dernier commentaire sur ma réponse, je l'adresse. Laissez-moi mettre à jour mon exemple pour mieux correspondre à votre situation. –

+0

Ouais je l'ai eu. Il me manquait la partie .value. Je vous remercie!! – randomizertech

Questions connexes