Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

Pegar value do option selecionado

Recommended Posts

Este código é para:

 

Selecionar um item do <SELECT> e exibir num alert o ID do item selecionado. Depois para vai para o próximo item até ler todo o <SELECT>.

 

O problema está na hora de exibir o ID do item selecionado. Ele vai selecionando os itens mas exibe sempre o mesmo ID (que é do primeiro item da lista).

 

function CompartilhaItem()
{
varItens = document.getElementById('swap_destino');

for( i = 0;i < varItens.length;i++){ 
varItens.options[i].selected = true; 
var var_id =varItens.options[varItens.selectedIndex].value;  
alert(var_id)

} 
}

Onde está o erro?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

para exibir o selecionado basta fazer:

alert( select.value );

eu não entendi oque vc quer, e nem entendi como é o teu html.

 

 

getElementById, retorna um único elemento, então o teu loop não faz nenhum sentido.

IDs identificam elementos únicos num documento, vc não deve repetir um ID.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, com document.getElementById('swap_destino') pego um <SELECT> da página (sim, é elemento único).

Com o loop eu seleciono todos <option> deste <SELECT>, como se tivesse segurado a tecla Crtl e clicado em vários itens.

 

Este comportamento está funcionando.

 

O que preciso é que, ao realizar a seleção de cada item seja exibido num alert o ID do <option> selecionado.

 

Atualmente ele repete o ID do primeiro <OPTION> em cada ciclo do loop. É aqui que está o erro. Preciso que exibe o ID do <option> que foi selecionado no ciclo do loop.

 

O código "puro" que apenas seleciona os <option> (e que está funcionado) seria este.

Preciso adaptá-lo para exibir um alert com o ID para cada item que o loop selecionar

 

function CompartilhaItem()
{
varItens = document.getElementById('swap_origem');

for( i = 0;i < varItens.length;i++){ 
varItens.options[i].selected = true; 
} 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

alert( varItens.options[i] );

mas o loop não faz sentido não cara. Para pegar os options do select, vc deveria ter feito:

 

var opt = select.getElementsByTagName('option');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retornar no alert [object HTMLOptionElement]. Não está pegando o ID do option.

 

varItens = document.getElementById('swap_origem');
for( i = 0;i < varItens.length;i++){ 
varItens.options[i].selected = true; 
alert( varItens.options[i] );

Será que é porque estou trazendo o SELECT e seus valores via AJAX?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá

Para varrer os ID's dos options:

 

varItens = document.getElementById('swap_origem');
for( i = 0;i < varItens.length;i++){ 
varItens.options[i].selected = true; 
alert( varItens.options[i].id );
}

 

[object HTMLOptionElement] é o retorno do objeto DOM que foi capturado por inteiro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.