Я пытался установить значение скрытого поля в форме, используя jQuery, но безуспешно.
Вот пример кода, который объясняет проблему. Если я оставлю тип ввода «текст», он будет работать без проблем. Но изменение типа ввода на «скрытый» не работает!
<html>
<head>
<script type="text/javascript" src="jquery.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$("button").click(function() {
$("input:text#texens").val("tinkumaster");
});
});
</script>
</head>
<body>
<p>
Name:
<input type="hidden" id="texens" name="user" value="texens" />
</p>
<button>
Change value for the text field
</button>
</body>
</html>
Я также попробовал следующий обходной путь, установив тип ввода «text», а затем используя стиль «display: none» для поля ввода. Но это также не удается! Кажется, у jQuery есть проблемы с настройкой скрытых или невидимых полей ввода.
Любые идеи? Есть ли обходной путь для этого, который действительно работает?
источник
val()
прекрасно работает со скрытым вводом, изменяя значение с «не изменено» на «изменено». Я пересмотрел пример, чтобы включить код, который вы вставили выше, с предупреждением для подтверждения изменения значения: jsbin.com/elovo/2/editЕсли у вас возникают проблемы при установке значения скрытого поля, потому что вы передаете ему идентификатор, вот решение:
Вместо того, чтобы
$("#hidden_field_id").val(id)
просто сделать$("input[id=hidden_field_id]").val(id)
. Не уверен, в чем разница, но это работает.источник
Наконец, я нашел решение, и оно простое:
Работает как шарм. Понятия не имею, почему jQuery не отступает от этого.
источник
type="radio"
. Мне лень сообщать о проблеме, особенно учитывая, что я решил эту проблему 4 года назад. Я также разрываюсь, если это должно быть исправлено в jQuery - возможно, это реализовано таким образом, чтобы защитить детишек jQuery от себя? Кто знает ...У меня была такая же проблема. как ни странно гугл хром и возможно другим (не уверен) не понравился
(без изменений)
(без изменений)
но это работает !!!!
ИЗМЕНЕНИЯ !!
ИЗМЕНЕНИЯ !!
должно быть "вещь строки"
источник
.val(' 0')
, что использовал мой бэкэнд , который правильно анализируетсяparseInt
в Javascript, а такжеint()
в Python.работал на меня, когда ни
ни
сделал.
источник
.val не работал для меня, потому что я хватаю сторону сервера атрибута значения, и значение не всегда обновлялось. поэтому я использовал:
Надеюсь, это кому-нибудь поможет.
источник
На самом деле, это постоянная проблема. В то время как Энди прав в отношении загруженного источника, .val (...) и .attr ('value', ...), похоже, фактически не изменяют html. Я думаю, что это проблема javascript, а не проблема jquery. Если бы вы использовали Firebug даже у вас был бы тот же вопрос. Хотя кажется, что если вы отправите форму с измененными значениями, она пройдет, HTML не изменится. Я столкнулся с этой проблемой, пытаясь создать предварительный просмотр измененной формы (делая [form] .html ()), он копирует все в порядке, включая все изменения, кромезначения меняются. Таким образом, мой модальный предварительный просмотр печати несколько бесполезен ... Мой обходной путь, возможно, должен заключаться в том, чтобы «создать» скрытую форму, содержащую добавленные значения, или создать предварительный просмотр независимо и сделать каждую модификацию, которую делает пользователь, также изменить предварительный просмотр. И то, и другое неоптимально, но если кто-то не выяснит, почему поведение установки значений не меняет html (в DOM, как я предполагаю), это придется делать.
источник
У меня была та же проблема, и я узнал, что случилось. HTML-код определен как
Чтение значений формы на сервере всегда приводило к тому, что электронная почта была пустой. Почесав голову (и многочисленные поиски), я понял, что ошибка не в правильном определении формы / ввода. При изменении ввода (как показано далее) это работает как шарм
Добавление в эту ветку на случай, если другие будут иметь такую же проблему.
источник
В моем случае я использовал не-строку (целое число) в качестве параметра val (), который не работает, трюк так же просто, как
источник
Использование
val()
не работает для меня. Я должен был использовать.attr()
везде. Также у меня были разные типы входов, и я должен был быть достаточно явным в случае флажков и выбора меню.Обновить текстовое поле
Обновить изображение рядом с вводом файла
Обновить булево
Обновить выбор (с номером или строкой)
источник
Другой гуча здесь потратил впустую часть моего времени, поэтому я думал, что передам совет. У меня было скрытое поле, я дал идентификатор, который имел. и
[]
скобки в имени (из-за использования с Struts2) и селектор$("#model.thefield[0]")
не найдет мое скрытое поле. Переименование идентификатора, чтобы не использовать точки и скобки, заставило селектор начать работать. Так что в итоге я получил идентификаторmodel_the_field_0
вместо, и селектор работал нормально.источник
$("#model.thefield[0]")
интерпретируется как: элемент сid
равнымmodel
, cssclass
ofthefield
и некоторыеattribute
вызываемые0
... Если вы хотите использовать эти символы в своемid
использовании, подход, предложенный Чаком Каллебсом в его ответе . В HTML5id
может быть любая строка, которая не является пустой и не содержит пробелов ( ссылка ).Используя ID:
Используя класс:
источник
Если вы ищете haml, то это ответ для скрытого поля, чтобы установить значение для скрытого поля, например
В вашем jquery просто преобразуйте значение в строку, а затем добавьте его, используя свойство attr в jquery. надеюсь, что это работает и на других языках.
источник
источник
Просто используйте синтаксис ниже получить и установить
ПОЛУЧИТЬ
здесь переменная будет содержать значение скрытого поля (selectindex)
Серверная сторона
УСТАНАВЛИВАТЬ
источник
У всех, кто борется с этим, есть очень простой «встроенный» способ сделать это с помощью jQuery:
Это устанавливает значение скрытого поля, когда текст вводится в видимый ввод с помощью события onChange. Полезно (как в моем случае), когда вы хотите передать значение поля в форму «Расширенный поиск» и не заставлять пользователя повторно вводить свой поисковый запрос.
источник