jQuery erişim girişi gizli değeri


Yanıtlar:


347

Gizli alanların değerlerine val(), tıpkı diğer giriş öğelerinde yaptığınız gibi erişebilirsiniz:

<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());

Bunların hepsi bu örnekte aynı anlama geliyor.


11
uyarısı ($ ( 'girişi [türü = gizli] #foo') val ().); Bu, id foo ile gizli değişkeni bulur. Bu arama daha spesifik.
Muhammed Rafeeq

6
@MohammedRafeeq uyarısı ($ ('# foo'). Val ()); Aynı spesifiktir. Çünkü bir kimlik DOM'de benzersizdir. Bu nedenle, html standartlara uyuyorsa her zaman sadece bir öğe bulur. İfadeyi, öğenin gizli olup olmadığını kontrol etmek için kullanmadığınız sürece.
Edwin Stoteler

1
daha hızlı olan nedir? $ ('# foo') veya $ ('giriş: gizli # foo')? i daha fazla arama bilgisi verilen ama nasıl uygulandığından emin değilim ikinci şüpheli, bu yüzden benim duygu doğru olup olmadığını bilmiyorum. EDIT: Tamam ben Abel yorum sayesinde cevap var, sadece id, yani #foo daha hızlı.
comte comte

15

Bunun için bir jQuery seçici var:

// 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' );

Size tüm gizli giriş alanlarını verir ve belirli olanlara göre filtreler type="".


2
Bunun ayrıca CSS görüntüleme değeri hiç olmayan öğelerle, genişliği ve yüksekliği 0 olarak ayarlanmış öğelerle ve gizli atası olan öğelerle ( api.jquery.com/hidden-selector ) eşleşeceğini unutmayın
Daniel Liuzzi


6

Değer almak için şunu kullanın:

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

veya:

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

Değeri ayarlamak için şunu kullanın:

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

4

Özel bir şey yok <input type="hidden">:

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

3

Tek bir gizli alanı seçmek istiyorsanız, jQuery'nin farklı seçicileriyle bu alanı seçebilirsiniz:

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


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

Gizli giriş bir stil sınıfı özelliği yok
Philip Puthenvila

3

Bir asp.net HiddenField'iniz varsa şunları yapmanız gerekir:

HiddenField Değerine erişmek için:

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

HiddenFieldValue ayarlamak için

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

1

Gizli bir alandan bir boolean değeri almak istiyorsanız dikkat edin!

Örneğin:

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

(Kullanırsanız böyle bir giriş ASP MVC tarafından oluşturulur @Html.HiddenFor(m => m.SomeBoolean).)

Sonra aşağıdaki 'False'bir JS boolean değil, bir dize döndürür !

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

Boole'i ​​mantık için kullanmak istiyorsanız, bunun yerine aşağıdakini kullanın:

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

-1

En evrensel yol, isme göre değer almaktır. Girdisinin veya form öğesi türünü seçmesinin önemi yoktur.

var value = $('[name="foo"]');
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.