jQuery доступ к вводу скрытого значения

Ответы:

347

Вы можете получить доступ к значениям скрытых полей val(), как и к любому другому элементу ввода:

<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());

Все это означает одно и то же в этом примере.

Тату Ульманен
источник
11
оповещения ($ ( 'вход [тип = скрытый] #foo') Вал ().); Это находит скрытую переменную с идентификатором foo. Этот поиск более конкретен.
Мохаммед Рафиек
6
@MohammedRafeeq alert ($ ('# foo'). Val ()); Это так же конкретно. Потому что идентификатор уникален в DOM. Поэтому он всегда найдет только один элемент, если html соответствует стандартам. Если вы не используете оператор, чтобы проверить, скрыт ли элемент или нет.
Эдвин Стотелер
1
что быстрее? $ ('# foo') или $ ('input: hidden # foo')? Я подозреваю, что второй, так как дано больше информации для поиска, но не уверен, как это реализовано, поэтому не знаю, правильно ли мое мнение РЕДАКТИРОВАТЬ: хорошо, у меня есть мой ответ благодаря комментарию Абеля, только идентификатор, то есть #foo быстрее.
Встреча
15

Для этого есть селектор jQuery:

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

Даст вам все скрытые поля ввода и отфильтрует по тем, у кого есть конкретные type="".

кайзер
источник
2
Обратите внимание, что это также будет соответствовать элементам, для которых значение CSS для отображения отсутствует, элементам с шириной и высотой, равным 0, и элементам со скрытым предком ( api.jquery.com/hidden-selector )
Даниэль Лиуцци,
6

Чтобы получить значение, используйте:

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

или:

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

Чтобы установить значение, используйте:

$('input[type=hidden]').attr('value',newValue);
корень
источник
4

В этом нет ничего особенного <input type="hidden">:

$('input[type="hidden"]').val()
Максим Слойко
источник
3

Если вы хотите выбрать отдельное скрытое поле, вы можете выбрать его с помощью различных селекторов jQuery:

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


$("#hiddenField").val(); //by id
$("[name='hiddenField']").val(); // by name
$(".hiddenField").val(); // by class
Родриго Лонго
источник
Вход скрытый не имеет свойства класса стиля
Филипп Путенвила
3

Если у вас есть asp.net HiddenField, вам необходимо:

Чтобы получить доступ к HiddenField Value:

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

Чтобы установить HiddenFieldValue

$('#<%=HF.ClientID%>').val('some value')   // HF = your hiddenfield ID
Бруно Феррейра
источник
1

Остерегайтесь, если вы хотите получить логическое значение из скрытого поля!

Например:

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

(Ввод, подобный этому, будет обработан ASP MVC, если вы используете @Html.HiddenFor(m => m.SomeBoolean).)

Затем следующее вернет строку 'False', а не логическое значение JS!

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

Если вы хотите использовать логическое значение для некоторой логики, используйте вместо этого следующее:

var aBool = $('#SomeBoolean').val() === 'True';
if (aBool) { /* ...*/ }
Георг Патшайдер
источник
-1

Наиболее универсальным способом является получение значения по имени. Неважно, если его ввод или выбрать тип элемента формы.

var value = $('[name="foo"]');
Марчин Журек
источник