Ir para conteúdo
Fórum Script Brasil
  • 0

Width


edmais

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0

Aproveitando o espaço, eu tenho um select e um botão em uma página.

Dentro do select, existem options.

Eu gostaria de que ao clicar no botão, a option selecionada fosse mudada de posição.. Se clicasse no botão 'Mover pra cima' a option passaria pra cima, se pra baixo, a option passaria pra baixo.. uma mudança de posições.

Para tanto, eu fiz:

function OnMoverParaBaixo()
{
	//	como mover para baixo um item?
	//	idem para cima porem aumentamos o index
	var index = document.frmColunas.selecionadas.selectedIndex;
	if (index > -1) {
  var velhoitem = document.frmColunas.selecionadas.item(index);
  var novoitem = document.createElement("option");

  novoitem.value = velhoitem.value;
  novoitem.text = velhoitem.text;
  novoitem.selected = true;

  document.frmColunas.selecionadas.remove(index);
  if (index < document.frmColunas.selecionadas.options.length) {
  	index++;
  }	
  document.frmColunas.selecionadas.add(novoitem, index);
	}
	else {
  alert("Selecione um item na lista de Colunas Aceitas");
	}
}

Mas aí eu me deparo com a incompatibilidade no Firefox, como eu poderia sanar isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Ainda não deu.

Porque na verdade é pegar o value e o indice da option, remover e adicionar denovo né com outro indice. E com isso, remove direitim, mas não adiciona.

Acho que o problema de incompatibilidade está com o add na linha

document.frmColunas.selecionadas.add(novoitem, index);

Eu tentei o

document.frmColunas.selecionadas.options[document.frmColunas.selecionadas.options.length] = new Option (novoitem.text, novoitem.value, true);

mas mesmo assim sad.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Função...

function OnMoverParaBaixo(name) {

    // como mover para baixo um item?

    // idem para cima porem aumentamos o index

    var obj = document.forms[0].elements[name];

    if (obj.type == "select-one") {

        var index = obj.selectedIndex;

        if (index > -1) {

  if (index+1 < obj.options.length) {

                var itemValue = obj.options[index+1].value;

                var itemText = obj.options[index+1].text;

                obj.options[index+1].value = obj.options[index].value;

                obj.options[index+1].text = obj.options[index].text;

                obj.options[index].value = itemValue;

                obj.options[index].text = itemText;

  }

        } else {

        alert("Selecione um item na lista de Colunas Aceitas");

        }

    }

}

Dei uma arrumada na tua função, eu acho, se eu te entendi direito, q você não precisa remover e criar de novo, você pode simplismente trocar as descrições e values...

como chamo na página...

<form name="form">

<select name="select">

<option value="1">Um</option>

<option value="2">Dois</option>

<option value="3">Três</option>

</select>

<input type="button" name="baixo" value="Enviar" onclick="OnMoverParaBaixo('select')">

</form>

Se por acaso o teu select não for one(de size 1) você pode trocar a comparação na função, pelo select q estiver usando...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...