Установить значение скрытого ввода с помощью jquery

96

Я пытаюсь установить значение скрытого поля ниже с помощью jQuery.

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

Я использую этот код:

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

Но это не работает. Что не так с моим кодом?

TonyM
источник
4
Для полной ясности jQuery возвращает коллекцию элементов DOM. test не становится элементом DOM, он становится массивом. Чтобы использовать простой старый javascript а-ля .value, вы можете выполнить test [0] .value или перебрать коллекцию, если их несколько. В противном случае test.val ('work!') Подойдет вам, поскольку это метод jQuery, а не test.value, который является свойством объекта элемента DOM.
Scottux

Ответы:

131

Вы должны использовать 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'»? Не уверен насчет атрибутов со смешанным регистром. Может быть, хвататься за соломинку ...
Hogsmill
1
Я думаю, проблема здесь в селекторе .. Я думаю, что это должно быть input[name="testing"-> тестирование между кавычками ... Каждый раз, когда установка какого-либо значения не работает, попробуйте сначала получить элемент .. Если вы его не получили, проблема не в .val (), а, вероятно, в селекторе
Томас Малдер
8

Предположим, у вас есть скрытый вход с именем XXX, если вы хотите присвоить значение следующему

<script type="text/javascript">

    $(document).ready(function(){
    $('#XXX').val('any value');
    })
</script>
Arteagasoft
источник
К вашему сведению, ответы, содержащие только код, обычно помечаются как низкокачественные и обычно удаляются. Попробуйте опубликовать контекст / объяснение с вашим ответом, если вы хотите, чтобы он остался и (возможно) получил голосование.
sgress454 09
Селектор, который вы используете ( #XXX), предназначен для idатрибута. Если бы вы «назвали» вход XXX, селектор был бы input[name="XXX"].
krummens
7
var test = $('input[name="testing"]:hidden');
test.val('work!');
Дат Нгуен
источник
4

Чтобы сделать это с помощью jquery, сделайте так:

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

Или

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

Смотрите, как работает эта скрипка .

Maykonn
источник
0

Имя указывать не нужно, достаточно указать идентификатор.

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

а с jquery вы можете использовать метод val (), как показано ниже:

 $('#testId').val("work");
nzrytmn
источник