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?


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>

33

Isso funcionou para mim:

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

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

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

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>

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 .


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");
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.