Подтвердить что ты не робот

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

У меня есть простое поле ввода внутри тега формы:

<body>
  <form action="#">
      <label>Input</label>
      <input type="hidden" id="foo" name="foo" />

  </form>
</body>

Я попытался установить это значение из js файла:

$(document).ready(function(){
    $('#foo').val('foo')
})

но в источнике html атрибут не установлен вообще. Если я попытаюсь установить тип ввода на "button" или что-нибудь еще, он будет работать. Я просто не могу сделать это с полем ввода hidden. Что я делаю неправильно?

4b9b3361

Ответ 1

Можно ли получить значение из скрытого поля, если вы установите тег val?

например.

<input type="hidden" id="foo" name="foo" value="bar" />

$(document).ready(function(){
  alert($('#foo').val());
})

Ответ 2

Я понял это. Значение было задано jQuery, но когда я просмотрел источник, новое значение не было показано. Я попробовал это (спасибо Фермину):

$('#foo').val('poo')
alert($('#foo').val())

и отобразило измененное значение.

Ответ 3

Лучший ответ, который я нашел, был в форме http://forum.jquery.com/topic/passing-value-to-hidden-form-field.

Вместо $('#Data').val(data); Если идентификатором скрытого поля является "Данные"

Используйте $('input[name=Data]').val(data);

Отлично работает для меня

Ответ 4

Я также боролся с этим. Если вы установите начальное значение, скажите "0", а затем посмотрите, как DOM использует что-то вроде Firebug, вы заметите, что DOM затем обновляется. По какой-либо причине, если начальное значение установлено на нуль или пустую строку, DOM не обновляется, но значение на самом деле все еще сохраняется.

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

Ответ 5

У меня была эта проблема, когда POST -и моя форма, и мой PHP скрипт не смог получить значение POST -ed. Я использовал это:

$('#elemId').attr("name", theValue);

Надеюсь, что это поможет.

Ответ 6

Мне нужно будет увидеть весь файл, но я предполагаю, что вы не включаете исходный файл jQuery.js или у вас есть несколько элементов с идентификатором foo

Ответ 7

У меня была та же проблема со скрытым полем ввода. Id я устанавливает начальное значение на 0, он работает нормально, но иногда я не хотел иметь начальное значение 0. Поэтому я тестировал со значением = "", пробел, и он работает для меня тоже. Если вы заполните динамическое значение из PHP, вы можете сделать value="<?= $val+0; ?>", если 0 подходит для вас, или value="<?= $val; ?> ", если пробел в порядке.

Ответ 8

Я знаю, что это до конца, но все же это может помочь кому-то.... Если ни одно из вышеперечисленных решений не работает, просто сделайте это...

$(document).ready(function() {
$('#foo').attr("value","foo") });

Ответ 9

Ни один из вышеперечисленных решений не работал у меня.

Мне нужно было сделать следующее:

$('#foo').val(data).blur();

Ответ 10

Вместо этого инициализируйте свой атрибут value со строкой, инициализируя ваш ввод следующим образом.

<input type="hidden" name="foo" id="foo" value="${foo}">

"foo" будет содержать новое значение, которое вы также установили.