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


96

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

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

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

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

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


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>


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>

К вашему сведению, ответы, содержащие только код, обычно помечаются как низкокачественные и обычно удаляются. Попробуйте опубликовать контекст / объяснение с вашим ответом, если вы хотите, чтобы он остался и (возможно) получил голосование.
sgress454 09

Селектор, который вы используете ( #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.