значение скрытого поля по умолчанию переопределяется кэшированным значением - PullRequest
0 голосов
/ 25 апреля 2020

Независимо от того, что я делаю в своем коде, значение моего скрытого поля всегда равно "1". Я попытался установить его в своем коде через ERB, HTML и jQuery, но единственное, что сработало, это jQuery в моей консоли Javascript. Ничто из того, что я делаю в моей реальной базе кода, не влияет на это.

Я бы хотел, чтобы оно начиналось со значения nil и устанавливало его в целое число, используя JS, но я бы согласился на возможность измените его на «1».

Вот ERB, который я пробовал:

<%= hidden_field_tag "id", nil, id:"id-field" %>

Вот HTML, который я пробовал:

<input type="hidden" name="id" id="id-field" value="0">

Вот jQuery Я пытался:

$("#id-field").val(47);

Но все это приводит к следующему:

<input type="hidden" name="id" id="id-field" value="1">

Как я уже сказал, если я запускаю jQuery в своей консоли, я наконец могу изменить ценность. Что происходит?

ОБНОВЛЕНИЕ:

Это определенно проблема с кэшированием. Я установил значение «1» один раз и не могу изменить значение по умолчанию, хотя мой синтаксис определенно правильный. У кого-нибудь есть похожие проблемы с атрибутом value скрытого поля? (Я пытаюсь использовать hidden_field вместо hidden_field_tag, но поведение такое же)

Я использую этот erb, и value изначально работает, но когда я устанавливаю значение на что-то другое и refre sh, кэшированное значение применяется, а атрибут value полностью игнорируется.

<%= f.hidden_field :id, value: @id, id: "id-field" %>

1 Ответ

0 голосов
/ 25 апреля 2020

попробуйте это:

var field = $('input[name="id"]:hidden');
field.val('45');
...