Dapatkan nilai yang dipilih dari item dropdown menggunakan jQuery


443

Bagaimana saya bisa mendapatkan nilai yang dipilih dari kotak dropdown menggunakan jQuery?
Saya mencoba menggunakan

var value = $('#dropDownId').val();

dan

var value = $('select#dropDownId option:selected').val();

tetapi keduanya mengembalikan string kosong.


3
Keduanya harus bekerja. Masalahnya harus di tempat lain (misalnya apakah kode itu dibungkus $(document).ready(...?)
karim79

4
var value = $('#dropDownId:selected').val();
semut

2
Tidak - $('#dropDownId').val();adalah cara paling ringkas untuk mendapatkan nilai yang dipilih.
karim79

1
@shyam Anda tidak perlu memilih dalam pernyataan ini karena ID unik untuk dokumen, Anda harus menggunakan nama tag hanya ketika merujuk ke kelas select#dropDownId option:selected,
sem

Jawaban:


840

Untuk elemen dom pilih tunggal, untuk mendapatkan nilai yang dipilih saat ini:

$('#dropDownId').val();

Untuk mendapatkan teks yang saat ini dipilih:

$('#dropDownId :selected').text();

11
Anda membutuhkan ruang sebelumnya :selected.
interjay

53
yang tercepat cara untuk mendapatkan teks opsi yang dipilih adalah:$("#dropDownId").children("option").filter(":selected").text()
RickardN

3
saya harap Anda telah menghubungkan referensi ke .val()dan.text()
shareef

8
Richard, kode Anda terlalu panjang ... bisa jauh lebih ringkas untuk dibaca
PositiveGuy

2
@ JamesM. Lay referensi DOM disimpan dalam variabel? Kemudian gunakanjQuery(domVariable).val()
Allen Linatoc

57
var value = $('#dropDownId:selected').text()

Jika berfungsi dengan baik, lihat contoh ini:

$(document).ready(function(){ 
  $('#button1').click(function(){ 
    alert($('#combo :selected').text());
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="combo">
  <option value="1">Test 1</option>
  <option value="2">Test 2</option>
</select>
<input id="button1" type="button" value="Click!" />


4
"value" adalah apa yang dilewatkan oleh sebagian besar pembuat kode, sementara mendeklarasikan elemen dan kueri tetap mengembalikan teks
Asad


22

Coba jQuery ini,

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

atau javascript ini,

 var selID=document.getElementById("ddlid");
 var text=selID.options[selID.selectedIndex].text;

Jika Anda perlu mengakses nilai dan bukan teks, coba gunakan val()metode alih-alih text().

Lihat tautan biola di bawah ini.

Demo1 | Demo2


14

coba ini

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

OP meminta nilai yang dipilih. Jawaban ini akan mendapatkan konten teks dari drop down. Tidak salah, hanya saja bukan apa yang dia minta.
Joshua Dance

12

Saya tahu ini adalah posting yang sangat tua dan saya mungkin harus dicambuk karena kebangkitan yang menyedihkan ini, tetapi saya pikir saya akan berbagi beberapa cuplikan JS kecil yang SANGAT membantu yang saya gunakan di setiap aplikasi di gudang senjata saya ...

Jika mengetik:

$("#selector option:selected").val() // or
$("#selector option:selected").text()

semakin tua, coba tambahkan crumpets kecil ini ke *.jsfile global Anda :

function soval(a) {
    return $('option:selected', a).val();
}
function sotext(a) {
    return $('option:selected', a).text();
}

dan hanya menulis soval("#selector");atau sotext("#selector");sebagai gantinya! Dapatkan lebih keren dengan menggabungkan keduanya dan mengembalikan objek yang berisi keduanya valuedan text!

function so(a) {
    my.value = $('option:selected', a).val();
    my.text  = $('option:selected', a).text();
    return my;
}

Ini menghemat banyak waktu berharga bagi saya, terutama pada aplikasi yang berat!


9

Ini akan mengingatkan nilai yang dipilih. Kode JQuery ...

$(document).ready(function () {

        $("#myDropDown").change(function (event) {
            alert("You have Selected  :: "+$(this).val());
        });
    });

Kode HTML ...

<select id="myDropDown">
        <option>Milk</option>
        <option>Egg</option>
        <option>Bread</option>
        <option>Fruits</option>
    </select>


8

Contoh lain yang diuji:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
    $('#bonus').change(function() {
    alert($("#bonus option:selected").text());
  });  
});
</script>
</head>

<body>
<select id="bonus">
<option value="1">-$5000</option>
<option value="2">-$2500</option>
<option value="3">$0</option>
<option value="4">$1</option>
<option value="5">We really appreciate your work</option>
</select>
</body>
</html>

4

Coba ini, ini mendapat nilai:

$('select#myField').find('option:selected').val();


3

Apakah Anda memberikan elemen pilih Anda dengan id?

<select id='dropDownId'> ...

Pernyataan pertama Anda seharusnya berhasil!


3

Untuk penggunaan teks yang dipilih:

value: $('#dropDownId :selected').text();

Untuk penggunaan nilai yang dipilih:

value: $('#dropDownId').val();

2

Yang iddihasilkan untuk kontrol drop down Anda htmlakan menjadi dinamis. Jadi gunakan id lengkap $('ct100_<Your control id>').val().Ini akan berhasil.


2

Atau jika Anda akan mencoba:

$("#foo").find("select[name=bar]").val();

Saya menggunakannya hari ini dan bekerja dengan baik.


2

menggunakan

$('#dropDownId').find('option:selected').val()

Ini seharusnya bekerja :)


2

Untuk mendapatkan nilai jquery dari drop down, Anda cukup menggunakan fungsi di bawah ini yang baru saja dikirim iddan mendapatkan nilai yang dipilih:

function getValue(id){
    var value = "";
    if($('#'+id)[0]!=undefined && $('#'+id)[0]!=null){
        for(var i=0;i<$('#'+id)[0].length;i++){
            if($('#'+id)[0][i].selected == true){
                if(value != ""){
                    value = value + ", ";
                }
                value = value + $('#'+id)[0][i].innerText;
            }
        }
    }
    return value;
}

Cara sulit untuk melakukannya, tetapi apa pun berhasil.
MC9000

2

	function fundrp(){
	var text_value = $("#drpboxid option:selected").text();  
	console.log(text_value);
	var val_text = $("#drpboxid option:selected").val();  
	console.log(val_text);
	var value_text = $("#drpboxid option:selected").attr("vlaue") ;
	console.log(value_text);
	var get_att_value = $("#drpboxid option:selected").attr("id") 
	console.log(get_att_value);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<select id="drpboxid">
	<option id="1_one" vlaue="one">one</option>
	<option id="2_two" vlaue="two">two</option>
	<option id="3_three" vlaue="three">three</option>              
</select>
<button id="btndrp" onclick="fundrp()">Tracking Report1234</button>


1

Saya tahu ini sudah lama tapi saya pikir saya memperbaruinya dengan jawaban yang lebih terkini

$( document ).on( 'change', '#combo', function () {
var prepMin= $("#combo option:selected").val();
 alert(prepMin);
});

saya harap ini membantu



1

gunakan salah satu dari kode ini

$('#dropDownId :selected').text();

ATAU

$('#dropDownId').text();


1
$("#selector <b>></b> option:selected").val()

Atau

$("#selector <b>></b> option:selected").text()

Kode di atas bekerja dengan baik untuk saya


1

Anda dapat melakukan ini dengan menggunakan kode berikut.

$('#dropDownId').val();

Jika Anda ingin mendapatkan nilai yang dipilih dari opsi daftar `s pilih. Ini akan melakukan triknya.

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

0

Anda dapat menggunakan salah satu dari ini:

$(document).on('change', 'select#dropDownId', function(){

            var value = $('select#dropDownId option:selected').text();

            //OR

            var value = $(this).val();

});


0

Coba ini:

 $('#dropDownId option').filter(':selected').text();     

 $('#dropDownId option').filter(':selected').val();

0

Gunakan metode di bawah ini untuk mendapatkan nilai yang dipilih pada pemuatan halaman:

$(document).ready(function () {
$('#ddlid').on('change', function () {
                var value = $('#ddlid :selected').text();
                alert(value);`
            });
});

0

Jika Anda memiliki lebih dari satu dropdown, cobalah:

HTML:

<select id="dropdown1" onchange="myFunction(this)">
    <option value='...'>Option1
    <option value='...'>Option2
</select>
<select id="dropdown2" onchange="myFunction(this)">
    <option value='...'>Option1
    <option value='...'>Option2
</select>

JavaScript:

    function myFunction(sel) {
        var selected = sel.value;
    }

0

HTML:

<select class="form-control" id="SecondSelect">
       <option>5<option>
       <option>10<option>
       <option>20<option>
       <option>30<option>
</select>

JavaScript:

var value = $('#SecondSelect')[0].value;

Harap sertakan penjelasan tentang bagaimana dan mengapa ini menyelesaikan masalah akan sangat membantu meningkatkan kualitas posting Anda, dan mungkin menghasilkan lebih banyak suara.
Android

-1
$("#dropDownId").val('2');
var SelectedValue= $("#dropDownId option:selected").text();
$(".ParentClass .select-value").html(SelectedValue);


<p class="inline-large-label button-height ParentClass" >
     <label for="large-label-2" class="label">Country <span style="color: Red;">*</span><small></small></label>
     <asp:DropDownList runat="server" ID="dropDownId " CssClass="select" Width="200px">          
    </asp:DropDownList>
</p>

-1

ini seharusnya bekerja untuk Anda

  $("#dropDownId").on('change',function(){
     var value=$(this).val();
     alert(value);
  });

Bagaimana jika opsi dropdown Anda ditandai sebagai dipilih secara terprogram (seperti dari permintaan ajax yang mengisi dropdown)? Jika Anda mencoba untuk mendapatkan .val (), Anda akan mendapatkan nol untuk nilainya (meskipun memeriksa sumbernya akan menunjukkan kepada Anda bahwa opsi tersebut memang dipilih)! $ ("opsi myDD: terpilih"). val () akan menghasilkan undefined.
MC9000
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.