Aí está Marcelo.
Abraços. Fabio.

Mover os itens para a caixa da direita, esquerda, para cima ou para baixo:

function direita(){

TransferValue(document.form1.msel_itens_disp,document.form1.msel_itens_selec
,document.form1.msel_itens_selec)
}

function esquerda(){

TransferValue(document.form1.msel_itens_selec,document.form1.msel_itens_disp
,document.form1.msel_itens_selec)
}

function cima(){
 MoveOptionUp(document.form1.msel_itens_selec)
}

function baixo(){
 MoveOptionDown(document.form1.msel_itens_selec)
}

----------------------- Funções ---------------------------

/* Tranfere um ou mais itens de um multiple Choice para Outro*/
// Origem = Campo do qual partem os valores selecionados
// Destino = Campo para qual vão os valores selecionados
// Argumento 3 = caso seja passado é o campo a ser enumerado
function TransferValue(origem,destino){
 var OrigemFicaArray = new Array();
 var OrigemTransfArray = new Array();
 var IndiceOrigem = 0;
 var IndiceTransf = 0;

 ChecaTamanhoChoice(destino,0);

 for (f = 0; f < destino.length; f++){
  OrigemTransfArray[IndiceTransf] = new Array();
  OrigemTransfArray[IndiceTransf][0] = destino.options[f].text;
  OrigemTransfArray[IndiceTransf][1] = destino.options[f].value;
  IndiceTransf = eval(IndiceTransf + 1);
 }

 for (f = 0; f < origem.length; f++){
 if (origem.options[f].selected){
   OrigemTransfArray[IndiceTransf] = new Array();
   OrigemTransfArray[IndiceTransf][0] = origem.options[f].text;
   OrigemTransfArray[IndiceTransf][1] = origem.options[f].value;
   IndiceTransf = eval(IndiceTransf + 1);
 }else{
   OrigemFicaArray[IndiceOrigem] = new Array();
   OrigemFicaArray[IndiceOrigem][0] = origem.options[f].text;
   OrigemFicaArray[IndiceOrigem][1] = origem.options[f].value;
   IndiceOrigem = eval(IndiceOrigem + 1);
  }
 }

 ArraytoChoice(origem,OrigemFicaArray);
 ArraytoChoice(destino,OrigemTransfArray);

 ChecaTamanhoChoice(origem,30);

 DesenumerarChoice(destino);
 DesenumerarChoice(origem);

 if (arguments.length > 2){
  if(arguments[2]){
   EnumerarChoice(arguments[2]);
   ChecaTamanhoChoice(origem,0);
   ChecaTamanhoChoice(origem,30);
  }
 }
}

/* Reposiciona o option dentro de um Choice colocando-o um índex acima*/
// choice = choice a ser trabalhado
function MoveOptionUp(choice){
 var ArraySelectedItens = new Array();
 var ArrayAllItens = new Array();
 var ArrayChoiceFinal = new Array();
 var IndiceArrayChoiceFinal = 0;
 var IndiceItens = 0;
 var IndiceAllItens = 0;
 var IndiceChoice;
 var NewIndiceValueChoice;
 var OldIndiceValueChoice;
 var TamanhoArrayNovo;

 // Criando um array com os options selecionados
 for (a = 0; a < choice.length; a++){
  if (choice.options[a].selected){
   if ( a != 0){
    ArraySelectedItens[IndiceItens] = choice.options[a].value;
    IndiceItens = eval(IndiceItens + 1);
   }
  }
 }

 // Criando um Array com todos os options
 for (a = 0; a < choice.length; a++){
  ArrayAllItens[IndiceAllItens] = choice.options[a].value;
  IndiceAllItens = eval(IndiceAllItens + 1);
 }

 // loop dos selecionados
 for (f = 0; f < ArraySelectedItens.length; f++){

  // Definindo o índex do choice em questão
  for (i = 0; i < choice.length; i++){
   if (ArrayAllItens[i] == ArraySelectedItens[f]){
     IndiceChoice = i;
    break;
   }
  }

  NewIndiceValueChoice = ArrayAllItens[IndiceChoice];
  OldIndiceValueChoice = ArrayAllItens[eval(IndiceChoice - 1)];

  ArrayAllItens[eval(IndiceChoice - 1)] = NewIndiceValueChoice;
  ArrayAllItens[IndiceChoice] = OldIndiceValueChoice;
 }

 // Contruindo um array final baseado no array de values
 TamanhoArrayNovo = ArrayAllItens.length;

 for (w = 0;w < TamanhoArrayNovo; w++){
  for (y = 0; y < choice.length; y++){
   if (ArrayAllItens[IndiceArrayChoiceFinal] == choice.options[y].value){
    ArrayChoiceFinal[IndiceArrayChoiceFinal] = new Array();
    ArrayChoiceFinal[IndiceArrayChoiceFinal][0] = choice.options[y].text;
    ArrayChoiceFinal[IndiceArrayChoiceFinal][1] = choice.options[y].value;
    IndiceArrayChoiceFinal = eval(IndiceArrayChoiceFinal + 1);
   }
  }


 }

 ArraytoChoice(choice,ArrayChoiceFinal);

 DesenumerarChoice(choice);
 EnumerarChoice(choice);

 OptionsFocus(choice,ArraySelectedItens)
}

/* Reposiciona o option dentro de um Choice colocando-o um índex acima*/
// choice = choice a ser trabalhado
function MoveOptionDown(choice){
 var ArraySelectedItens = new Array();
 var ArrayAllItens = new Array();
 var ArrayChoiceFinal = new Array();
 var IndiceArrayChoiceFinal = 0;
 var IndiceItens = 0;
 var IndiceAllItens = 0;
 var IndiceChoice;
 var NewIndiceValueChoice;
 var OldIndiceValueChoice;
 var TamanhoArrayNovo;

 // Criando um array com os options selecionados
 for (a = eval(choice.length - 1); a >= 0; a--){
  if (choice.options[a].selected){
   if ( a != eval(choice.length-1)){
    ArraySelectedItens[IndiceItens] = choice.options[a].value;
    IndiceItens = eval(IndiceItens + 1);
   }
  }
 }

 // Criando um Array com todos os options
 for (a = 0; a < choice.length; a++){
  ArrayAllItens[IndiceAllItens] = choice.options[a].value;
  IndiceAllItens = eval(IndiceAllItens + 1);
 }

 // loop dos selecionados
 for (f = 0; f < ArraySelectedItens.length; f++){

  // Definindo o índex do choice em questão
  for (i = 0; i < choice.length; i++){
   if (ArrayAllItens[i] == ArraySelectedItens[f]){
     IndiceChoice = i;
    break;
   }
  }

  NewIndiceValueChoice = ArrayAllItens[IndiceChoice];
  OldIndiceValueChoice = ArrayAllItens[eval(IndiceChoice + 1)];

  ArrayAllItens[eval(IndiceChoice + 1)] = NewIndiceValueChoice;
  ArrayAllItens[IndiceChoice] = OldIndiceValueChoice;
 }

 // Contruindo um array final baseado no array de values
 TamanhoArrayNovo = ArrayAllItens.length;

 for (w = 0;w < TamanhoArrayNovo; w++){
  for (y = 0; y < choice.length; y++){
   if (ArrayAllItens[IndiceArrayChoiceFinal] == choice.options[y].value){
    ArrayChoiceFinal[IndiceArrayChoiceFinal] = new Array();
    ArrayChoiceFinal[IndiceArrayChoiceFinal][0] = choice.options[y].text;
    ArrayChoiceFinal[IndiceArrayChoiceFinal][1] = choice.options[y].value;
    IndiceArrayChoiceFinal = eval(IndiceArrayChoiceFinal + 1);
   }
  }
 }

 ArraytoChoice(choice,ArrayChoiceFinal);

 DesenumerarChoice(choice);
 EnumerarChoice(choice);

 OptionsFocus(choice,ArraySelectedItens)

}





----- Original Message -----
From: "Marcelo Rodrigo" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, June 18, 2004 5:13 PM
Subject: [cf-brasil] OFF: JS para cambiar listboxes


Pessoal,

Desculpem o OFF, mas é de extrema necessidade.
Alguém tem algum JS que transfira itens de uma listbox para outra?

Obrigado,

Marcelo

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.707 / Virus Database: 463 - Release Date: 15/06/04

--^----------------------------------------------------------------
This email was sent to: [EMAIL PROTECTED]

EASY UNSUBSCRIBE click here: http://topica.com/u/?b1dnXn.b7M5gI.YXJxdWl2
Or send an email to: [EMAIL PROTECTED]

For Topica's complete suite of email marketing solutions visit:
http://www.topica.com/?p=TEXFOOTER
--^----------------------------------------------------------------






Responder a