Встановити значення прихованого введення за допомогою jquery


92

Я намагаюся встановити значення прихованого поля нижче за допомогою jQuery.

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

Я використовую цей код:

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

Але це не працює. Що не так з моїм кодом?


4
Для повної ясності jQuery повертає колекцію елементів DOM. test не стає елементом DOM, він стає масивом. Щоб використовувати звичайний старий javascript a la .value, ви можете виконати тест [0] .value або цикл над колекцією, якщо їх більше одного. В іншому випадку test.val ('work!') Буде працювати для вас, оскільки це метод jQuery, а не test.value, який є властивістю об'єкта елемента DOM.
Скоттукс,

Відповіді:


128

Вам слід використовувати valзамість value.

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

33

Це працювало для мене:

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

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

1
дивно, це повинно було зробити
Хаїм Евгі

Не виникає проблем через "Type = 'hidden'", а не "type = 'hidden'"? Не впевнений щодо змішаних атрибутів регістру. Можливо,
хапався

1
я думаю, що проблема тут у селекторі .. Я думаю, що це повинно бути input[name="testing"-> тестування між лапками ... Коли встановлення якогось значення не працює, спробуйте отримати елемент першим .. Якщо ви його не отримаєте, проблема не в .val (), а, ймовірно, у селекторі
Томасі Малдері


7

Припустимо, у вас є прихований вхід під назвою XXX, якщо ви хочете призначити значення наступному

<script type="text/javascript">

    $(document).ready(function(){
    $('#XXX').val('any value');
    })
</script>

FYI, відповіді лише для коду, як правило, позначаються як низькоякісні та зазвичай видаляються. Спробуйте розмістити контекст / пояснення зі своєю відповіддю, якщо ви хочете, щоб він залишився і (можливо) отримав підтримку.
sgress454

Селектор, який ви використовуєте ( #XXX), призначений для idатрибута. Якби ви "назвали" вхід XXX, селектором буде input[name="XXX"].
krummens

4

Щоб зробити це за допомогою jquery, зробіть так:

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

Або

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

Дивіться роботу в цій скрипці .


0

Вам не потрібно встановлювати ім’я, достатньо просто вказати ідентифікатор.

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

і ніж з jquery, ви можете використовувати метод 'val ()', як показано нижче:

 $('#testId').val("work");
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.