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?


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>

32

Das hat bei mir funktioniert:

$('input[name="sort_order"]').attr('value','XXX');

27
$('input[name="testing"]').val(theValue);

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

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>

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 .


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");
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.