2009-11-24 3 views
0

J'ai deux boîtes multi-sélection qui se transfèrent l'une à l'autre. Le transfert dans les deux sens se passe bien. J'appelle également un ajax fn pour soumettre les options choisies à une base de données. L'appel de gauche à droite fonctionne bien car j'obtiens juste toutes les options, pas seulement celles qui sont sélectionnées.jQuery Obtention des options sélectionnées numéro

var domelts = $('#imfavs option'); 
// next translate that into an array of just the values 
var buddylist = $.map(domelts, function(elt, i) { return $(elt).val();}); 

Maintenant, quand je tente d'aller de droite à gauche avec juste les options sélectionnées, il est toujours retourner un tableau vide.

J'ai essayé 2 façons

var domelts = $('#imfavs :selected'); 
var removelist = $.map(domelts, function(elt, i) { return $(elt).val();}); 

$('#imfavs :selected').each(function (x) { 
    removelist[x] = $(this).val(); 
}); 

pour le 2ème, removelist est var'd avant.

Mon HTML

 <form method="post" name="frmFavs" id="frmFavs"> 
      <table> 
       <tr> 
        <td><strong>Current Friends</strong></td> 
        <td>&nbsp;</td> 
        <td><strong>SLS Chat Friends</strong></td> 
        <td>&nbsp;</td>       
       </tr> 
       <tr> 
        <td> 
         <select name="userfavs" multiple="multiple" size="25" id="userfavs"> 
          <cfoutput query="userfavs"><option value="#encrypt(userfavs.user2id,application.key,'DES','Hex')#">#userfavs.user2#</option></cfoutput> 
         </select> 
        </td> 
        <td> 
         <button type="button" style="height:100px;" id="add">&gt;</button><br /> 
         <button type="button" style="height:100px;" id="remove">&lt;</button> 
        </td> 
        <td> 
         <select name="imfavs" multiple="multiple" size="25" id="imfavs"></select> 
        </td> 
       <td valign="middle"><div id="info"></div></td> 
       </tr> 
      </table> 
     </form> 

Toute aide appréciée.

Merci.

Répondre

3

au lieu de

var domelts = $('#imfavs :selected'); 

essayer

var domelts = $('#imfavs option:selected'); 
+0

+1, les grands esprits ... et 51 secondes. – karim79

0

J'ai essayé votre code et il semblait bien fonctionner.

Vérifiez et assurez-vous que les options ont des attributs de valeur.

<option value="value1">value1</option>

Questions connexes