Normalmente eu uso $("#id").val()
para retornar o valor da opção selecionada, mas desta vez não funciona. A tag selecionada tem o IDaioConceptName
Código HTML
<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
<option>choose io</option>
<option>roma</option>
<option>totti</option>
</select>
javascript
jquery
html
William Kinaan
fonte
fonte
#aioConceptName
value
atributo nesses<option>
s, certo?$("#aioConceptName").val()
retornachoose io
.Respostas:
Para opções suspensas, você provavelmente deseja algo como isto:
O motivo
val()
não funciona é que clicar em uma opção não altera o valor da lista suspensa - apenas adiciona a:selected
propriedade à opção selecionada, que é filha da lista suspensa.fonte
.val()
deve funcionar no seu caso - você deve ter um erro em outro lugar.val()
por que não usarvar conceptVal = $("#aioConceptName option").filter(":selected").val();
?var conceptVal = $("#aioConceptName option:selected").val()
?var mySelect = $('#mySelect');
/ * ... mais código acontece ... * /var selectedText = mySelect.find(':selected').text();
Defina os valores para cada uma das opções
$('#aioConceptName').val()
não funcionou porque.val()
retorna ovalue
atributo Para que funcione corretamente, osvalue
atributos devem ser definidos em cada um<option>
.Agora você pode ligar em
$('#aioConceptName').val()
vez de todo esse:selected
vodu ser sugerido por outros.fonte
$('#aioConceptName').val()
retorna nulo / "indefinido"prompt
opção especial<option>Please select an option</option>
. No meu caso, não foi um problema adicionar um atributo de valor em branco,<option value="">Please...</option>
mas acredito que em alguns casos não ter um atributo de valor faz sentido. Mas +1 porque suas palavras no vodoo me fizeram sorrir.val()
selecionar o emvalue
vez do texto dentro dooption
? Ou seja, ele seleciona em1
vez deroma
..val()
. Se você deseja manipular / usar o texto, use$(":selected).text()
ou defina o valor e o texto como iguais.Eu me deparei com essa pergunta e desenvolvi uma versão mais concisa da resposta de Elliot BOnneville:
ou genericamente:
Isso economiza uma chamada extra de jQuery, seleciona tudo de uma só vez e fica mais claro (minha opinião).
fonte
querySelectorAll()
método DOM nativo (consulte a documentação do jQuery ). Portanto, deve ser mais lento que a solução da Eliot ..find(':selected')
-lo, pois ele permite que você o chame de um retorno de chamada associado a um evento ... como$('#aioConceptname').bind('change', function(el) { console.log ( $(el).find(':selected').text() ); });
Tente isso por valor ...
ou isso para texto ...
fonte
Se você estiver no contexto de evento, no jQuery, poderá recuperar o elemento de opção selecionado usando:
$(this).find('option:selected')
assim:Editar
Como mencionado por PossessWithin , minha resposta apenas responde à pergunta: Como selecionar a opção "Opção" selecionada.
Em seguida, para obter o valor da opção, use
option.val()
.fonte
$(this).find('option:selected').val()
no final para obter o valor do elemento option, ou$(this).find('option:selected').text()
para obter o texto. :)Você já pensou em usar javascript antigo simples?
Consulte também Obtendo uma opção de texto / valor com JavaScript
fonte
fonte
Lendo o valor (não o texto) de uma seleção:
Como desativar uma seleção? nas duas variantes, o valor pode ser alterado usando:
UMA
O usuário não pode interagir com o menu suspenso. E ele não sabe que outras opções podem existir.
B
O usuário pode ver as opções no menu suspenso, mas todas elas estão desativadas:
Nesse caso,
$("#Status").val()
funcionará apenas para versões jQuery menores que1.9.0
. Todas as outras variantes funcionarão.Como atualizar uma seleção desativada?
No código por trás, você ainda pode atualizar o valor em sua seleção. Está desativado apenas para usuários:
Em alguns casos, pode ser necessário acionar eventos:
fonte
fonte
:selected
.. val () ou text () não está funcionando corretamente em várias opções de seleção, apenas se alguma matriz for produzida como elamap()
poderia fazer.você deve usar esta sintaxe:
Então tente este código:
você pode testar no Fiddle: http://jsfiddle.net/PJT6r/9/
veja sobre esta resposta neste post
fonte
Usando o jQuery, basta adicionar um
change
evento e obter o valor ou texto selecionado dentro desse manipulador.Se você precisar de texto selecionado, use este código:
Ou, se você precisar de um valor selecionado, use este código:
fonte
Use a
jQuery.val()
função também para selecionar elementos:fonte
Para quem descobriu a melhor resposta, não funciona.
Tente usar:
Funciona para mim em projetos recentes, por isso vale a pena dar uma olhada.
fonte
Apenas isso deve funcionar:
fonte
Simples e fácil:
Seu menu suspenso
Código Jquery para obter o valor selecionado
fonte
Você pode tentar depurá-lo desta maneira:
fonte
Para obter o valor da tag selecionada:
E se você deseja obter texto, use este código:
Por exemplo:
fonte
Se você deseja pegar o atributo 'value' em vez do nó de texto, isso funcionará para você:
fonte
tente este
fonte
Imagine o DDL como uma matriz com índices, você está selecionando um índice. Escolha o que você deseja configurá-lo com seu JS.
fonte
Espero que isso também ajude a entender melhor e tente isso abaixo,
para obter mais detalhes, http://www.drtuts.com/get-value-multi-select-dropdown-without-value-attribute-using-jquery/
fonte
Você pode usar
$("#drpList").val();
fonte
para buscar uma seleção com a mesma classe = nome, você poderia fazer isso, para verificar se uma opção de seleção está selecionada.
fonte
Eu tive o mesmo problema e descobri por que não estava funcionando no meu caso.
A página html foi dividida em diferentes fragmentos de html e descobri que tenho outro campo de entrada que carrega o mesmo ID do
select
, o que faziaval()
com que ele estivesse sempre vazioEspero que isso salve o dia para quem tem um problema semelhante.
fonte
Para usar $ ("# id"). val, você deve adicionar um valor à opção como esta:
mais, você pode usar
Eu desejo que ajude ..
fonte
Aqui está a solução simples para esse problema.
fonte
var selectedaioConceptName = $('#aioConceptName option:selected').val();
é melhor do que usar outro find ()Provavelmente, sua melhor aposta nesse tipo de cenário é usar o método de alteração do jQuery para encontrar o valor selecionado no momento, da seguinte forma:
Eu prefiro esse método porque você pode executar funções para cada opção selecionada em um determinado campo de seleção.
Espero que ajude!
fonte
Geralmente, você precisa não apenas obter o valor selecionado, mas também executar alguma ação. Então, por que não evitar toda a magia do jQuery e apenas passar o valor selecionado como argumento para a chamada de ação?
fonte
Você pode selecionar usando a opção exata selecionada: Abaixo você verá innerText
Enquanto abaixo lhe dará valor.
fonte