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
сигнал ($ ('input [type = hidden] #foo'). val ()); Це знаходить приховану змінну з id foo. Цей пошук більш конкретний.
Мухаммед Рафік

6
@MohammedRafeeq попередження ($ ('# foo'). Val ()); Так само специфічно. Тому що ідентифікатор унікальний у DOM. Для цього він завжди знайде лише один елемент, якщо html дотримуватиметься стандартів. Якщо ви не використовуєте оператор, щоб перевірити, прихований елемент чи ні.
Едвін Стотелер

1
що швидше? $ ('# foo') або $ ('input: hidden # foo')? я підозрюю, що другий, оскільки подано більше пошукової інформації, але не знаю, як вона реалізована, тому не знаю, чи моє почуття правильне. EDIT: добре, я маю свою відповідь завдяки коментарю Abel, ідентифікатор, тобто #foo швидше.
comte

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


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, вам потрібно:

Щоб отримати доступ до значення прихованого поля:

$('#<%=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"]');
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.