versteckter Wert für jQuery-Zugriffseingabe

174

Wie kann ich mit jQuery auf <input type="hidden">das valueAttribut des Tags zugreifen ?

IM-JM
quelle
3
Mögliches Duplikat von Wert aus verstecktem Feld
abrufen

Antworten:

347

Sie können val()wie bei jedem anderen Eingabeelement auf die Werte ausgeblendeter Felder zugreifen :

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

Diese bedeuten in diesem Beispiel alle dasselbe.

Tatu Ulmanen
quelle
11
alert ($ ('input [type = hidden] #foo'). val ()); Dies findet die versteckte Variable mit der ID foo. Diese Suche ist spezifischer.
Mohammed Rafeeq
6
@MohammedRafeeq alert ($ ('# foo'). Val ()); Ist genauso spezifisch. Weil eine ID im DOM eindeutig ist. Daher wird es immer nur ein Element finden, wenn der HTML-Code den Standards entspricht. Es sei denn, Sie verwenden die Anweisung, um zu überprüfen, ob das Element ausgeblendet ist oder nicht.
Edwin Stoteler
1
was ist schneller $ ('# foo') oder $ ('Eingabe: verstecktes # foo')? Ich vermute die zweite, da mehr Suchinformationen angegeben wurden, bin mir aber nicht sicher, wie sie implementiert sind. Ich weiß also nicht, ob mein Gefühl richtig ist. EDIT: ok ich habe meine antwort dank abel kommentar, nur id, dh #foo ist schneller.
Comte
15

Dafür gibt es einen jQuery-Selektor:

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

Gibt Ihnen alle versteckten Eingabefelder und filtert nach denen mit einem bestimmten type="".

Kaiser
quelle
2
Beachten Sie, dass dies auch mit Elementen mit einem CSS-Anzeigewert von none, Elementen mit einer Breite und Höhe von 0 und Elementen mit einem versteckten Vorfahren übereinstimmt ( api.jquery.com/hidden-selector )
Daniel Liuzzi,
6

Verwenden Sie:

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

oder:

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

Verwenden Sie zum Festlegen des Werts:

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

Es gibt nichts Besonderes an <input type="hidden">:

$('input[type="hidden"]').val()
Maxim Sloyko
quelle
3

Wenn Sie ein einzelnes verstecktes Feld auswählen möchten, können Sie es über die verschiedenen Selektoren von jQuery auswählen:

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


$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class
Rodrigo Longo
quelle
Eingabe versteckt hat keine
Stilklasseneigenschaft
3

Wenn Sie ein asp.net HiddenField haben, müssen Sie:

So greifen Sie auf den HiddenField-Wert zu:

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

So legen Sie HiddenFieldValue fest

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

Achten Sie darauf, ob Sie einen booleschen Wert aus einem versteckten Feld abrufen möchten!

Beispielsweise:

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

(Eine solche Eingabe wird von ASP MVC gerendert, wenn Sie sie verwenden @Html.HiddenFor(m => m.SomeBoolean).)

Dann gibt das Folgende einen String zurück 'False', keinen JS-Booleschen!

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

Wenn Sie den Booleschen Wert für eine Logik verwenden möchten, verwenden Sie stattdessen Folgendes:

var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }
Georg Patscheider
quelle
-1

Der universellste Weg ist, Wert mit Namen zu nehmen. Es spielt keine Rolle, ob die Eingabe oder der Formularelementtyp ausgewählt wird.

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