valor oculto de entrada de acesso jQuery

Respostas:

347

Você pode acessar os valores dos campos ocultos com val(), assim como em qualquer outro elemento de entrada:

<input type="hidden" id="foo" name="zyx" value="bar" />

alert($('input#foo').val());
alert($('input[name=zyx]').val());
alert($('input[type=hidden]').val());
alert($(':hidden#foo').val());
alert($('input:hidden[name=zyx]').val());

Todos significam a mesma coisa neste exemplo.

Tatu Ulmanen
fonte
11
alert ($ ('input [type = hidden] #foo'). val ()); Isso encontra a variável oculta com o id foo. Esta pesquisa é mais específica.
Mohammed Rafeeq
6
@MohammedRafeeq alert ($ ('# foo'). Val ()); É tão específico. Porque um ID é único no DOM. Para isso, sempre encontrará apenas um elemento se o html seguir os padrões. A menos que você use a instrução para verificar se o elemento está oculto ou não.
Edwin Stoteler
1
o que é mais rápido? $ ('# foo') ou $ ('input: hidden # foo')? Eu suspeito que o segundo já que mais informações de pesquisa são fornecidas, mas não sei como elas são implementadas, por isso não sei se meu sentimento está correto. EDIT: ok, eu tenho a minha resposta, graças ao comentário Abel, id apenas, ou seja, #foo é mais rápido.
comte
15

Existe um seletor jQuery para isso:

// Get all form fields that are hidden
var hidden_fields = $( this ).find( 'input:hidden' );

// Filter those which have a specific type
hidden_fields.attr( 'text' );

Irá fornecer todos os campos de entrada ocultos e filtrar por aqueles com um específico type="".

kaiser
fonte
2
Observe que isso também corresponderá a elementos que tenham um valor de exibição CSS igual a none, elementos que tenham largura e altura definidos como 0 e elementos que tenham um ancestral oculto ( api.jquery.com/hidden-selector )
Daniel Liuzzi
6

Para obter valor, use:

$.each($('input'),function(i,val){
    if($(this).attr("type")=="hidden"){
        var valueOfHidFiled=$(this).val();
        alert(valueOfHidFiled);
    }
});

ou:

var valueOfHidFiled=$('input[type=hidden]').val();
alert(valueOfHidFiled);

Para definir valor, use:

$('input[type=hidden]').attr('value',newValue);
a raiz
fonte
4

Não há nada de especial em <input type="hidden">:

$('input[type="hidden"]').val()
Maxim Sloyko
fonte
3

Se você deseja selecionar um campo oculto individual, é possível selecioná-lo através dos diferentes seletores do jQuery:

<input type="hidden" id="hiddenField" name="hiddenField" class="hiddenField"/> 


$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class
Rodrigo Longo
fonte
Entrada escondida não tem uma propriedade de classe de estilo
Philip Puthenvila
3

Se você possui um HiddenField do asp.net, precisa:

Para acessar o valor HiddenField:

$('#<%=HF.ClientID%>').val()  // HF = your hiddenfield ID

Para definir HiddenFieldValue

$('#<%=HF.ClientID%>').val('some value')   // HF = your hiddenfield ID
Bruno Ferreira
fonte
1

Cuidado se você deseja recuperar um valor booleano de um campo oculto!

Por exemplo:

<input type="hidden" id="SomeBoolean" value="False"/>

(Uma entrada como essa será renderizada pelo ASP MVC, se você usar @Html.HiddenFor(m => m.SomeBoolean).)

Em seguida, o seguinte retornará uma string 'False', não um JS booleano!

var notABool = $('#SomeBoolean').val();

Se você deseja usar o booleano para alguma lógica, use o seguinte:

var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }
Georg Patscheider
fonte
-1

A maneira mais universal é valorizar o nome. Não importa se sua entrada ou selecione o tipo de elemento do formulário.

var value = $('[name="foo"]');
Marcin Żurek
fonte