Obtenha o valor de um menu suspenso no jQuery


100

Eu tenho uma lista suspensa que tem um par 'ID, Nome'.

Exemplo

Jon Miller
Jim Smith
Jen Morsin

Jon MIller tem ID 101
Jim Smith tem ID 102
Jen Morsin tem ID 103

Quando eu faço o seguinte:

var arNames = $('#Crd').val() 

e eu seleciono Jon Miller, ganho 101. Gostaria de obter Jon Miller, no entanto.


Respostas:


185

$('#Crd').val()fornecerá o valor selecionado do elemento suspenso. Use isto para obter o texto das opções selecionadas.

$('#Crd option:selected').text();

3
$ ('# Crd option: selected'). Text () ou $ ('# Crd option: selected'). Val (), .text fornece o valor do texto exibido, não o valor
patrick choi

$ ('# Opção Crd: selecionada'). Val (); para valor
asifaftab87

13

A melhor maneira é usar:

$("#yourid option:selected").text();

Dependendo do requisito, você também pode usar desta forma:

var v = $("#yourid").val();
$("#yourid option[value="+v+"]").text()

5

Se você estiver usando um <select>, .val()obtém o 'valor' do selecionado <option>. Se não tiver um value, ele pode retornar ao id. Coloque o valor que você deseja que ele retorne no valueatributo de cada<option>

Editar: Ver comentários para esclarecimentos sobre o que valuerealmente é (não necessariamente igual ao valueatributo).


1
Apenas para esclarecer, .val () retorna a propriedade do valor ao vivo, não o valor do atributo HTML.
Chad

Corrigir. No entanto, não há diferença prática neste caso, pois o OP não parece querer alterar os values em nenhum momento.
Ansel Santosa

2
.val() gets the 'value' attribute of the selected <option>, como eu disse: apenas esclarecendo.
Chad

E se eu precisar do índice ou id em vez do texto?
bgmCoder

5

Isso tem funcionado para mim!

$('#selected-option option:selected').val()

Espero que isso ajude alguém!


3
var sal = $('.selectSal option:selected').eq(0).val();

selectSal é uma classe.



2

Outra opção:

$("#<%=dropDownId.ClientID%>").children("option:selected").val();

0

Como foi apontado ... em uma selectcaixa, o .val()atributo fornecerá o valor da opção selecionada. Se a opção selecionada não tiver um atributo de valor, ela será padronizada para o valor de exibição da opção (que é o que os exemplos na documentação do jQuery.val mostram .

você deseja usar .text()a opção selecionada:

$('#Crd option:selected').text()


0

Isso fornece o valor atual do menu suspenso, se o menu suspenso tiver um ID de "someId".

$("#someId").val();

0

$('.leave_response').on('change', function() {
    var responseId = $(this).val();
    console.log(responseId);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td>
    <select class="leave_response" name="leave">
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
    </select>
</td>


0

Passe o id e mantenha em uma variável e passe a variável onde quiser.

var temp = $ ('select [name = ID Name]'). val ();


$ ('select [name = ID Name] opção: selecionado'). val (); Este também funciona
Abhijit Patra
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.