Stellen Sie den Wert der versteckten Eingabe mit jquery ein

92

Ich versuche, den Wert des versteckten Feldes unten mit jQuery festzulegen.

<input type="hidden" value="" name="testing" />

Ich benutze diesen Code:

var test = $("input[name=testing]:hidden");
test.value = 'work!';

Aber es funktioniert nicht. Was ist los mit meinem Code?

TonyM
quelle
4
Aus Gründen der Übersichtlichkeit gibt jQuery eine Sammlung von DOM-Elementen zurück. test wird nicht zum DOM-Element, sondern zum Array. Um einfaches altes Javascript a la .value zu verwenden, können Sie [0] .value testen oder die Sammlung durchlaufen, wenn es mehr als einen gibt. Andernfalls würde test.val ('work!') Für Sie funktionieren, da es sich eher um eine jQuery-Methode als um test.value handelt, die eine Eigenschaft des DOM-Elementobjekts ist.
Scottux

Antworten:

128

Sie sollten valanstelle von verwenden value.

<script type="text/javascript" language="javascript">
$(document).ready(function () { 
    $('input[name="testing"]').val('Work!');
});
</script>
Unheimlicher Bart
quelle
32

Das hat bei mir funktioniert:

$('input[name="sort_order"]').attr('value','XXX');
gzveri
quelle
27
$('input[name="testing"]').val(theValue);
Haim Evgi
quelle
1
seltsam, es soll es tun
Haim Evgi
Es gibt kein Problem, weil "Type = 'hidden'" statt "type = 'hidden'" vorhanden ist. Ich bin mir nicht sicher über gemischte Fallattribute. Könnte an Strohhalmen festhalten ...
Hogsmill
1
Ich denke, das Problem hier ist der Selektor. Ich denke, es sollte sein input[name="testing"-> Testen zwischen Anführungszeichen ... Wenn das Setzen eines Werts nicht funktioniert, versuchen Sie zuerst, das Element zu erhalten. Wenn Sie es nicht bekommen, wird das Problem ist nicht mit .val (), sondern wahrscheinlich mit dem Selektor
Thomas Mulder
7
var test = $('input[name="testing"]:hidden');
test.val('work!');
Dat Nguyen
quelle
7

Angenommen, Sie haben eine versteckte Eingabe mit dem Namen XXX, wenn Sie den folgenden Werten einen Wert zuweisen möchten

<script type="text/javascript">

    $(document).ready(function(){
    $('#XXX').val('any value');
    })
</script>
arteagasoft
quelle
Zu Ihrer Information: Nur-Code-Antworten werden im Allgemeinen als minderwertig gekennzeichnet und normalerweise gelöscht. Versuchen Sie, einen Kontext / eine Erklärung mit Ihrer Antwort zu veröffentlichen, wenn Sie möchten, dass diese erhalten bleibt und (möglicherweise) positiv bewertet wird.
sgress454
Der von Ihnen verwendete Selektor ( #XXX) ist für das idAttribut. Wenn Sie einen Eingang XXX "benannt" haben, wäre der Selektor input[name="XXX"].
Krummens
4

Um es mit jquery zu machen, gehen Sie folgendermaßen vor:

var test = $("input[name=testing]:hidden");
test.val('work!');

Oder

var test = $("input[name=testing]:hidden").val('work!');

Siehe Arbeiten in dieser Geige .

Maykonn
quelle
0

Sie müssen keinen Namen festlegen, es reicht aus, nur eine ID anzugeben.

<input type="hidden" id="testId" />

und als mit jquery können Sie die 'val ()' - Methode wie folgt verwenden :

 $('#testId').val("work");
nzrytmn
quelle