Nilai tersembunyi input akses jQuery


Jawaban:


347

Anda dapat mengakses nilai-nilai bidang tersembunyi val(), sama seperti yang dapat Anda lakukan pada elemen input lainnya:

<input type="hidden" id="foo" name="zyx" value="bar" />

alert($('input#foo').val());
alert($('input[name=zyx]').val());
alert($('input[type=hidden]').val());
alert($(':hidden#foo').val());
alert($('input:hidden[name=zyx]').val());

Semua itu memiliki arti yang sama dalam contoh ini.


11
alert ($ ('input [type = hidden] #foo'). val ()); Ini menemukan variabel tersembunyi dengan id foo. Pencarian ini lebih spesifik.
Mohammed Rafeeq

6
@MohammedRafeeq lansiran ($ ('# foo'). Val ()); Sama spesifiknya. Karena id unik di DOM. Untuk itu akan selalu menemukan hanya satu elemen jika html mengikuti standar. Kecuali Anda menggunakan pernyataan untuk memeriksa apakah elemen tersebut disembunyikan atau tidak.
Edwin Stoteler

1
apa yang lebih cepat? $ ('# foo') atau $ ('input: hidden # foo')? Saya menduga yang kedua karena lebih banyak info pencarian yang diberikan tetapi tidak yakin bagaimana ini diterapkan, jadi tidak tahu apakah perasaan saya benar. EDIT: ok saya punya jawaban saya berkat komentar Abel, id saja, yaitu #foo lebih cepat.
comte

15

Ada pemilih jQuery untuk itu:

// Get all form fields that are hidden
var hidden_fields = $( this ).find( 'input:hidden' );

// Filter those which have a specific type
hidden_fields.attr( 'text' );

Akan memberi Anda semua bidang input tersembunyi dan filter oleh orang-orang dengan spesifik type="".


2
Perhatikan bahwa ini juga akan mencocokkan elemen yang memiliki nilai tampilan CSS tidak ada, elemen yang memiliki lebar dan tinggi diatur ke 0, dan elemen yang memiliki leluhur tersembunyi ( api.jquery.com/hidden-selector )
Daniel Liuzzi


6

Untuk mendapatkan nilai, gunakan:

$.each($('input'),function(i,val){
    if($(this).attr("type")=="hidden"){
        var valueOfHidFiled=$(this).val();
        alert(valueOfHidFiled);
    }
});

atau:

var valueOfHidFiled=$('input[type=hidden]').val();
alert(valueOfHidFiled);

Untuk menetapkan nilai, gunakan:

$('input[type=hidden]').attr('value',newValue);

4

Tidak ada yang spesial tentang <input type="hidden">:

$('input[type="hidden"]').val()

3

Jika Anda ingin memilih satu bidang tersembunyi, Anda dapat memilihnya melalui berbagai pemilih jQuery:

<input type="hidden" id="hiddenField" name="hiddenField" class="hiddenField"/> 


$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class

Masukan yang disembunyikan tidak memiliki properti kelas gaya
Philip Puthenvila

3

Jika Anda memiliki asp.net HiddenField, Anda perlu:

Untuk mengakses Nilai HiddenField:

$('#<%=HF.ClientID%>').val()  // HF = your hiddenfield ID

Untuk mengatur HiddenFieldValue

$('#<%=HF.ClientID%>').val('some value')   // HF = your hiddenfield ID

1

Hati-hati jika Anda ingin mengambil nilai boolean dari bidang tersembunyi!

Sebagai contoh:

<input type="hidden" id="SomeBoolean" value="False"/>

(Input seperti ini akan diberikan oleh ASP MVC jika Anda menggunakannya @Html.HiddenFor(m => m.SomeBoolean).)

Maka yang berikut ini akan mengembalikan string 'False', bukan JS boolean!

var notABool = $('#SomeBoolean').val();

Jika Anda ingin menggunakan boolean untuk beberapa logika, gunakan yang berikut ini sebagai gantinya:

var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }

-1

Cara paling universal adalah mengambil nilai berdasarkan nama. Tidak masalah apakah input atau pilih tipe elemen form.

var value = $('[name="foo"]');
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.