Defina o valor da entrada oculta com jquery

92

Estou tentando definir o valor do campo oculto abaixo usando jQuery.

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

Estou usando este código:

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

Mas não está funcionando. O que há de errado com meu código?

TonyM
fonte
4
Para maior clareza, jQuery retorna uma coleção de elementos DOM. test não se torna o elemento DOM, ele se torna um array. Para usar o javascript puro e simples a la .value, você pode fazer o teste [0] .value ou fazer um loop sobre a coleção, se houver mais de uma. Caso contrário, test.val ('work!') Funcionaria para você, pois é um método jQuery em vez de test.value que é uma propriedade do objeto de elemento DOM.
Scottux

Respostas:

128

Você deve usar em valvez de value.

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

Isso funcionou para mim:

$('input[name="sort_order"]').attr('value','XXX');
gzveri
fonte
27
$('input[name="testing"]').val(theValue);
Haim Evgi
fonte
1
estranho, é suposto fazer isso
Haim Evgi
Não há um problema por causa de "Type = 'hidden'" em vez de "type = 'hidden'" não é? Não tenho certeza sobre atributos de maiúsculas e minúsculas. Pode estar se agarrando a qualquer coisa ...
Hogsmill
1
Acho que o problema aqui é o seletor .. Acho que deveria ser input[name="testing"-> testando entre aspas ... Sempre que definir algum valor não funcionar, tente obter o elemento primeiro. Se você não conseguir, o o problema não é com .val (), mas provavelmente com o seletor
Thomas Mulder
7
var test = $('input[name="testing"]:hidden');
test.val('work!');
Dat Nguyen
fonte
7

Suponha que você tenha uma entrada oculta, chamada XXX, se quiser atribuir um valor ao seguinte

<script type="text/javascript">

    $(document).ready(function(){
    $('#XXX').val('any value');
    })
</script>
arteagasoft
fonte
Para sua informação, as respostas apenas de código geralmente são sinalizadas como de baixa qualidade e geralmente serão excluídas. Tente postar algum contexto / explicação com sua resposta se quiser que ela continue e (possivelmente) seja votada.
sgress454
O seletor que você está usando ( #XXX) é para o idatributo. Se você "nomeou" uma entrada como XXX, o seletor seria input[name="XXX"].
krummens
4

Para fazer isso com jquery, faça desta forma:

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

Ou

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

Veja como trabalhar neste violino .

Maykonn
fonte
0

Você não precisa definir o nome, basta fornecer um id.

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

e que com jquery você pode usar o método 'val ()' como abaixo:

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