Foros del Web » Programando para Internet » Javascript »

Intercambio de valores entre select

Estas en el tema de Intercambio de valores entre select en el foro de Javascript en Foros del Web. Hola a todos. Me bajé el siguiente código en javascript : Código PHP: var  singleSelect  =  true ;   // Allows an item to be selected once only var  sortSelect  =  true ;   // Only effective if above flag set to true ...
  #1 (permalink)  
Antiguo 04/05/2006, 01:42
 
Fecha de Ingreso: octubre-2003
Mensajes: 280
Antigüedad: 20 años, 6 meses
Puntos: 1
Intercambio de valores entre select

Hola a todos. Me bajé el siguiente código en javascript:

Código PHP:
var singleSelect true;  // Allows an item to be selected once only
var sortSelect true;  // Only effective if above flag set to true
var sortPick true;  // Will order the picklist in sort sequence

// Initialise - invoked on load
function initIt() {
  var 
selectList document.getElementById("SelectList");
  var 
selectOptions selectList.options;
  var 
selectIndex selectList.selectedIndex;
  var 
pickList document.getElementById("PickList");
  var 
pickOptions pickList.options;
  
pickOptions[0] = null;  // Remove initial entry from picklist (was only used to set default width)
  
if (!(selectIndex > -1)) {
    
selectOptions[0].selected true;  // Set first selected on load
    
selectOptions[0].defaultSelected true;  // In case of reset/reload
  
}
  
selectList.focus();  // Set focus on the selectlist
}

// Adds a selected item into the picklist
function addIt() {
  var 
selectList document.getElementById("SelectList");
  var 
selectIndex selectList.selectedIndex;
  var 
selectOptions selectList.options;
  var 
pickList document.getElementById("PickList");
  var 
pickOptions pickList.options;
  var 
pickOLength pickOptions.length;
  
// An item must be selected
  
while (selectIndex > -1) {
    
pickOptions[pickOLength] = new Option(selectList[selectIndex].text);
    
pickOptions[pickOLength].value selectList[selectIndex].value;
    
// If single selection, remove the item from the select list
    
if (singleSelect) {
      
selectOptions[selectIndex] = null;
       
    }
    if (
sortPick) {
      var 
tempText;
      var 
tempValue;
      
// Sort the pick list
      
while (pickOLength && pickOptions[pickOLength].value pickOptions[pickOLength-1].value) {
        
tempText pickOptions[pickOLength-1].text;
        
tempValue pickOptions[pickOLength-1].value;
        
pickOptions[pickOLength-1].text pickOptions[pickOLength].text;
        
pickOptions[pickOLength-1].value pickOptions[pickOLength].value;
        
pickOptions[pickOLength].text tempText;
        
pickOptions[pickOLength].value tempValue;
        
pickOLength pickOLength 1;
      }
    }
    
selectIndex selectList.selectedIndex;
    
pickOLength pickOptions.length;
  }
  
selectOptions[0].selected true;
}

// Deletes an item from the picklist
function delIt() {
  var 
selectList document.getElementById("SelectList");
  var 
selectOptions selectList.options;
  var 
selectOLength selectOptions.length;
  var 
pickList document.getElementById("PickList");
  var 
pickIndex pickList.selectedIndex;
  var 
pickOptions pickList.options;
  while (
pickIndex > -1) {
    
// If single selection, replace the item in the select list
    
if (singleSelect) {
      
selectOptions[selectOLength] = new Option(pickList[pickIndex].text);
      
selectOptions[selectOLength].value pickList[pickIndex].value;
    }
    
pickOptions[pickIndex] = null;
    if (
singleSelect && sortSelect) {
      var 
tempText;
      var 
tempValue;
      
// Re-sort the select list
      /*while (selectOLength > 0 && selectOptions[selectOLength].value < selectOptions[selectOLength-1].value) {
        tempText = selectOptions[selectOLength-1].text;
        tempValue = selectOptions[selectOLength-1].value;
        selectOptions[selectOLength-1].text = selectOptions[selectOLength].text;
        selectOptions[selectOLength-1].value = selectOptions[selectOLength].value;
        selectOptions[selectOLength].text = tempText;
        selectOptions[selectOLength].value = tempValue;
        selectOLength = selectOLength - 1;
      }*/
    
}
    
pickIndex pickList.selectedIndex;
    
selectOLength selectOptions.length;
  }
}

// Selection - invoked on submit
function selIt(btn) {
  var 
pickList document.getElementById("PickList");
  var 
pickOptions pickList.options;
  var 
pickOLength pickOptions.length;
  if (
pickOLength 1) {
    
alert("No ha seleccionado ningún elemento.");
    return 
false;
  }
  for (var 
0pickOLengthi++) {
    
pickOptions[i].selected true;
  }
  return 
true;

Bien. lo que hace es pasar los valores de SelectList a PickList, pero eliminando los del primero según se vayan pasando. Bien, me gustaria q se pasaran pero sin que se eliminara, es decir, que se pueda añadir en picklist varias veces el mismo elemento. ¿Que cambias habría que hacer? He mirado el código y cambiado las cosas pero no funciona.

Gracias.
  #2 (permalink)  
Antiguo 04/05/2006, 09:03
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
<html>
<head>
<title>Untitled</title>
<script type="text/javascript">

function cambiar(este){
aa=(este==0)?"mes2":"mes";
bb=(este==0)?"nada":"mes2";
a=document.forms[0][aa];
b=document.forms[0][bb];
if(a.value==''){return false;}
seVa=a.options[a.selectedIndex];
//a[a.selectedIndex]=seVa;
if(bb!="nada"){b.options[b.options.length]=new Option(seVa.text,seVa.value);}
else{
a[a.selectedIndex]=null;
}

}
</script>
</head>

<body><form>
<input type="hidden" name="nada">
<select name="mes" size="13"><option value="*">Elija Mes</option>
<option value="0">Enero</option>
<option value="1">Febrero</option>
<option value="2">Marzo</option>
<option value="3">Abril</option>
<option value="4">Mayo</option>
<option value="5">Junio</option>
<option value="6">Julio</option>
<option value="7">Agosto</option>
<option value="8">Septiembre</option>
<option value="9">Octubre</option>
<option value="10">Noviembre</option>
<option value="11">Diciembre</option>
</select>
<input type="button"value="->" onclick="cambiar(1)">
<input type="button"value="X" onclick="cambiar(0)">

<select name="mes2" size="13">
</select>
</form>
</body>
</html>
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 04/02/2009, 16:37
 
Fecha de Ingreso: febrero-2009
Mensajes: 3
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Intercambio de valores entre select

Hola, supongo que tendrás que pasarlos a la otra lista sin borrarlos de la origen (teóricamente).
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:59.