jQuery select2 obtém o valor da tag select?


95

Olá amigos, este é o meu código:

<select id='first'>
  <option value='1'> First  </option>
  <option value='2'> Second </option>
  <option value='3'> Three  </option>
</select>

Este é o meu código select2:

$("#first").select2();

Abaixo está o código para obter o valor selecionado.

$("#first").select2('val'); // It returns first,second,three.

Este é o retorno de um texto como first,second,threee desejo obter 1,2,3.
Significa que preciso do valor da caixa de seleção, não do texto.


Você pode fornecer um JSFiddle? Seria muito útil.
— Ionică Bizău

1
questão não está clara. exatamente o que você quer?
— Hiral

Respostas:


148
$("#first").val(); // this will give you value of selected element. i.e. 1,2,3.

5
$ ("# primeiro"). val (); // retorna 1,2,3 OR $ ("# primeiro"). select2 ('val'); // retorna primeiro, segundo, três
— Renish Khunt

$ ("# primeiro"). val (); retornará 1,2,3 (o que for selecionado) e você pode postar o código na função select2 () para mais detalhes.
— algum dia

para um select chamado pelo nome do id em vez do nome da classe, use: $ (". first"). val ()
— Rui Martins

@RuiMartins errado. IDs são chamados com "#" e classes são chamadas com ".", Então para chamar por ID, você usaria $ ("# first"). Val () e para CLASS usaria $ (". First" ) .val ()
— Questões de fonte

58

Para obter o elemento Select, você pode usar $('#first').val();

Para obter o texto do valor selecionado - $('#first :selected').text();

Você pode postar seu select2()código de função


1
$ ("# primeiro"). val (); // retorna 1,2,3 OR $ ("# primeiro"). select2 ('val'); // retorna primeiro, segundo, três
— Renish Khunt

Não tenho certeza, entendi sua pergunta.
— Krish R

1
quando eu usei o plugin select2, eu obtenho o valor usando $ ("# first"). val (). não retorna nada retorna em branco.
— Renish Khunt

Você pode fornecer um exemplo de violino com seu plugin?
— Krish R

1
Eu tive que usar $('#first :selected').text();a outra opção era retornar todas as opções possíveis.
— Jeff Bluemel de

35

$("#first").select2('data') retornará todos os dados como mapa


1
Muito útil se você tiver propriedades extras nos objetos select2
— Sapato

9

Se você estiver usando ajax , pode desejar obter o valor atualizado de select logo após a seleção.

//Part 1

$(".element").select2(/*Your code*/)    

//Part 2 - continued 

$(".element").on("select2:select", function (e) { 
  var select_val = $(e.currentTarget).val();
  console.log(select_val)
});

Créditos: Steven-Johnston


Olá, posso saber de onde currentTargetvem? nenhum dos seus exemplos de ID / nome está relacionado à pergunta. Portanto, não posso me relacionar com nada
— mastersuse

8

Esta solução permite que você esqueça o elemento selecionado. Útil quando você não tem uma identificação em elementos selecionados.

$("#first").select2()
.on("select2:select", function (e) {
    var selected_element = $(e.currentTarget);
    var select_val = selected_element.val();
});

4

A resposta simples é:

$('#first').select2().val()

e você também pode escrever desta forma:

 $('#first').val()

3

Experimente isto:

$('#input_id :selected').val(); //for getting value from selected option
$('#input_id :selected').text(); //for getting text from selected option

@RenishKhunt as respostas aqui não são apenas para você (a pessoa que fez a pergunta), mas também para outras pessoas que estão vendo esta página. E quanto mais soluções diferentes forem enviadas aqui, melhor será a escolha de todos, de novo: não apenas você :)
— infografnet

Sim, sinto muito. Obrigado, @infografnet e muito obrigado Fahmi Imanudin por postar uma resposta :)
— Renish Khunt

2

Veja este violino .
Basicamente, você deseja obter os values de suas option-tags, mas sempre tenta obter o valor de seu select-node com $("#first").val().

Portanto, temos que selecionar as tags de opção e utilizaremos os seletores jQuerys:

$("#first option").each(function() {
    console.log($(this).val());
});

$("#first option")seleciona todos os optionque são filhos do elemento com o id first.


$ ("# primeiro"). val (); // retorna 1,2,3 OR $ ("# primeiro"). select2 ('val'); // retorna primeiro, segundo, três
— Renish Khunt

Parece que entendi errado sua pergunta, então, por favor, esclareça exatamente o que você deseja alcançar.
— KeyNone

quando eu usei o plugin select2, eu obtenho o valor usando $ ("# first"). val (). não retorna nada retorna em branco.
— Renish Khunt

Veja este violino . Funciona perfeitamente bem para mim. (Eu adicionei select2.js nos recursos externos, embora não consiga dizer por que as caixas parecem feias).
— KeyNone

a chave é que você disse que queremos obter o valor das tags de opção!
— Darius.V


0

Outras respostas não estavam funcionando para mim, então desenvolvi a solução:

Eu criei a opção com class = "option-item" para facilitar o direcionamento

HTML:

<select id="select-test">
<option value="5-val" id="first-id" class="option-item"> First option </option>
</select>

Então, para cada opção selecionada eu adicionei nenhuma propriedade de exibição

CSS:

option:checked {
   display: none;
}

Agora podemos adicionar alterações ao nosso SelectBox para encontrar nossa opção selecionada com a propriedade display none por simples : atributo oculto

JQuery:

$('#select-test').change(function(){
//value 
    $('#select-test').find('.option-item:hidden').val();
//id
    $('#select-test').find('.option-item:hidden').attr('id');
//text
    $('#select-test').find('.option-item:hidden').text();
});

Trabalhando violino: https://jsfiddle.net/Friiz/2dk4003j/10/


0

Solução:

var my_veriable = $('#your_select2_id').select2().val();
var my_last_veriable = my_veriable.toString();
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.