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?

TonyM
źródło
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>
Sinister Beard
źródło
33

To zadziałało dla mnie:

$('input[name="sort_order"]').attr('value','XXX');
gzveri
źródło
28
$('input[name="testing"]').val(theValue);
Haim Evgi
źródło
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>
arteagasoft
źródło
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
7
var test = $('input[name="testing"]:hidden');
test.val('work!');
Dat Nguyen
źródło
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 .

Maykonn
źródło
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");
nzrytmn
źródło