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.

Tatu Ulmanen
sumber
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="".

kaisar
sumber
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);
akar
sumber
4

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

$('input[type="hidden"]').val()
Maxim Sloyko
sumber
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
Rodrigo Longo
sumber
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
Bruno Ferreira
sumber
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) { /* ...*/ }
Georg Patscheider
sumber
-1

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

var value = $('[name="foo"]');
Marcin Żurek
sumber