Ustaw wartość ukrytego wejścia za pomocą jQuery


96

Próbuję ustawić wartość ukrytego pola poniżej za pomocą jQuery.

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

Używam tego kodu:

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

Ale to nie działa. Co jest nie tak z moim kodem?


4
Dla pełnej przejrzystości jQuery zwraca kolekcję elementów DOM. test nie staje się elementem DOM, staje się tablicą. Aby użyć zwykłego javascript a la .value, możesz wykonać test [0] .value lub zapętlić kolekcję, jeśli jest więcej niż jedna. W przeciwnym razie test.val ('praca!') Zadziałaby dla Ciebie, ponieważ jest to metoda jQuery, a nie test.value, który jest właściwością obiektu elementu DOM.
Scottux

Odpowiedzi:


131

Powinieneś użyć valzamiast value.

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

33

To zadziałało dla mnie:

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

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

1
dziwne, ma to zrobić
Haim Evgi

Nie ma problemu, ponieważ występuje „Type = 'hidden'” zamiast „type = 'hidden'”? Nie mam pewności co do różnych atrybutów wielkości liter. Może
chwytać się

1
Myślę, że problemem jest tutaj selektor .. Myślę, że powinno być input[name="testing"-> testowanie między cudzysłowami ... Zawsze, gdy ustawienie jakiejś wartości nie działa, spróbuj najpierw pobrać element .. Jeśli go nie dostaniesz, Problem nie dotyczy .val (), ale prawdopodobnie selektora
Thomas Mulder

8

Załóżmy, że masz ukryte wejście o nazwie XXX, jeśli chcesz przypisać wartość do następujących

<script type="text/javascript">

    $(document).ready(function(){
    $('#XXX').val('any value');
    })
</script>

Do Twojej wiadomości, odpowiedzi zawierające tylko kod są zazwyczaj oznaczane jako niskiej jakości i zazwyczaj są usuwane. Spróbuj zamieścić jakiś kontekst / wyjaśnienie ze swoją odpowiedzią, jeśli chcesz, aby pozostała w pobliżu i (prawdopodobnie) została przyjęta.
sgress454

Selektor, którego używasz ( #XXX) jest dla idatrybutu. Jeśli „nazwiesz” wejście XXX, selektorem będzie input[name="XXX"].
krummens


4

Aby to zrobić za pomocą jquery, wykonaj następujące czynności:

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

Lub

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

Zobacz pracę na tych skrzypcach .


0

Nie musisz nadawać nazwy, wystarczy podać identyfikator.

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

i niż z jquery możesz użyć metody 'val ()' jak poniżej:

 $('#testId').val("work");
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.