Como obtenho o valor selecionado em uma lista suspensa usando JavaScript?
Eu tentei os métodos abaixo, mas todos eles retornam o índice selecionado em vez do valor:
var as = document.form1.ddlViewBy.value;
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
javascript
html-select
Mão de fogo
fonte
fonte
Respostas:
Se você tiver um elemento de seleção parecido com este:
Executando este código:
Faria
strUser
ser2
. Se o que você realmente deseja étest2
, faça o seguinte:O que tornaria
strUser
sertest2
fonte
onchange
:)var strUser = e.options[e.selectedIndex].value;
por que não apenasvar strUser = e.value ?
var e = document.getElementById("ddlViewBy").value;
e.target.options[e.target.selectedIndex].text
não sei por que ele está errado em todas as respostas aqui ..JavaScript simples:
jQuery:
AngularJS : ( http://jsfiddle.net/qk5wwyct ):
fonte
element.options[e.selectedIndex].value
deve serelement.options[element.selectedIndex].value
e.target.options[e.target.selectedIndex].text
não sei por que ele está errado em todas as respostas aqui ..Isso está correto e deve fornecer o valor. É o texto que você procura?
Então você está claro na terminologia:
Esta opção possui:
fonte
e.target.options[e.target.selectedIndex].text
não sei por que ele está errado em todas as respostas aqui ..O código a seguir exibe vários exemplos relacionados à obtenção / colocação de valores dos campos de entrada / seleção usando JavaScript.
Link de origem
Trabalhando Javascript e jQuery Demo
O script a seguir está obtendo o valor da opção selecionada e colocando-o na caixa de texto 1
O script a seguir está obtendo um valor de uma caixa de texto 2 e alertando com seu valor
O script a seguir está chamando uma função de uma função
fonte
onchange=run(this.value)
ou(this.text)
pode ser mais benéfico.fonte
Se você encontrar um código escrito exclusivamente para o Internet Explorer, poderá ver o seguinte:
A execução do procedimento acima no Firefox et al dará a você um erro 'não é uma função', porque o Internet Explorer permite que você use () em vez de []:
A maneira correta é usar colchetes.
fonte
Qualquer campo de entrada / formulário pode usar uma palavra-chave "this" quando você a estiver acessando de dentro do elemento. Isso elimina a necessidade de localizar um formulário na árvore dom e, em seguida, localizar esse elemento dentro do formulário.
fonte
É provável que os iniciantes desejem acessar valores de uma seleção com o atributo NAME em vez do atributo ID. Sabemos que todos os elementos do formulário precisam de nomes, mesmo antes de receberem IDs.
Então, estou adicionando a
getElementByName()
solução apenas para os novos desenvolvedores verem.NB os nomes dos elementos do formulário precisarão ser exclusivos para que seu formulário possa ser usado depois de publicado, mas o DOM pode permitir que um nome seja compartilhado por mais de um elemento. Por esse motivo, considere adicionar IDs aos formulários, se puder, ou seja explícito com os nomes dos elementos do formulário
my_nth_select_named_x
emy_nth_text_input_named_y
.Exemplo usando
getElementByName
:fonte
Existem duas maneiras de fazer isso usando JavaScript ou jQuery.
JavaScript:
OU
jQuery:
fonte
Apenas use
$('#SelectBoxId option:selected').text();
para obter o texto listado$('#SelectBoxId').val();
para obter o valor do índice selecionadofonte
As respostas anteriores ainda deixam espaço para melhorias devido às possibilidades, à intuitividade do código e ao uso de
id
versusname
. Pode-se obter uma leitura de três dados de uma opção selecionada - seu número de índice, seu valor e seu texto. Esse código simples para vários navegadores faz os três:Demonstração ao vivo: http://jsbin.com/jiwena/1/edit?html,output .
id
deve ser usado para fins de maquiagem. Para fins de formulário funcional,name
ainda é válido, também em HTML5, e ainda deve ser usado. Por fim, lembre-se do uso de colchetes quadrados versus redondos em determinados lugares. Como foi explicado anteriormente, apenas as versões mais antigas do Internet Explorer aceitam versões arredondadas em todos os lugares.fonte
Usando jQuery:
fonte
Outra solução é:
fonte
Exemplo de execução de como funciona:
Nota: Os valores não mudam conforme a lista suspensa é alterada, se você precisar dessa funcionalidade, uma alteração onClick deve ser implementada.
fonte
Você pode usar
querySelector
.Por exemplo
fonte
Eu tenho uma visão um pouco diferente de como conseguir isso. Normalmente, faço isso com a seguinte abordagem (é uma maneira mais fácil e funciona com todos os navegadores, tanto quanto eu sei):
fonte
Em 2015, no Firefox , o seguinte também funciona.
fonte
Para acompanhar as respostas anteriores, é assim que eu faço isso como uma linha. Isto é para obter o texto real da opção selecionada. Existem bons exemplos para obter o número do índice já. (E para o texto, eu só queria mostrar dessa maneira)
Em alguns casos raros, você pode precisar usar parênteses, mas isso seria muito raro.
Duvido que esse processo seja mais rápido que a versão de duas linhas. Eu simplesmente gosto de consolidar meu código o máximo possível.
Infelizmente, isso ainda busca o elemento duas vezes, o que não é o ideal. Um método que apenas agarra o elemento uma vez seria mais útil, mas ainda não o descobri no que diz respeito a fazer isso com uma linha de código.
fonte
Aqui está uma linha de código JavaScript:
Supondo que o menu suspenso
name="list"
nomeie a lista e inclua em um formulário com o atributo namename="form1"
.fonte
var as = document.form1.ddlViewBy.value;
..."Você deve estar usando
querySelector
para conseguir isso. Isso também padroniza a maneira de obter valor dos elementos do formulário.var dropDownValue = document.querySelector('#ddlViewBy').value;
Fiddle: https://jsfiddle.net/3t80pubr/
fonte
Não sei se sou eu quem não responde corretamente à pergunta, mas isso só funcionou para mim: Usar um evento onchange () no seu html, por exemplo.
// javascript
Isso fornecerá qualquer valor na lista suspensa por clique
fonte
A maneira mais simples de fazer isso é:
fonte
Aqui está uma maneira fácil de fazer isso em uma função onchange:
event.target.options[event.target.selectedIndex].dataset.name
fonte
Apenas faça:
document.getElementById('idselect').options.selectedIndex
Então você receberá o valor do índice selecionado, começando em 0.
fonte
Tentar
Mostrar snippet de código
fonte
Faça um menu suspenso com várias opções (quantas você quiser!)
Eu fiquei um pouco hilário. Aqui está o trecho de código:
yay o trecho funcionou
fonte