Изменить значение hidden_field_tag ​​с помощью JS (прототип & Rails 3) - PullRequest
2 голосов
/ 01 апреля 2012

Я еду на Rails 3 и использую Prototype.Тем не менее, я действительно только задаю вопрос JS ..

У меня есть форма, это довольно просто.В форме у меня есть скрытый тег поля:

<%= hidden_field_tag(:instructor_id, @instructor.id) %>

Это нормально, когда я отправляю форму одному конкретному инструктору.

У меня есть другая страница, на которой отображаетсямного инструкторов.Вместо того, чтобы помещать там идентификатор инструктора, как в приведенном выше коде, я бы хотел изменить значение скрытого поля в зависимости от того, какая кнопка отправки нажата.

Т.е. одна форма, несколько кнопок отправки.Форма будет отправлена, и если все будет в порядке, пользователь сможет продолжить и нажать другую кнопку отправки, отправив свои данные другому инструктору.Чтобы добиться этого, я хочу использовать JavaScript, чтобы изменить значение моего скрытого поля при нажатии.

    <%form_for :call_back_request, :remote => true, :url => {:action => "call_back_request"} do |c| %>
    <%= hidden_field_tag(:instructor_id, @instructor.id) %>
    <%= hidden_field_tag(:pr_ok, true) %>
    <%= c.text_field :first_name, :class => "profilesmstext" %>
    <%= c.text_field :last_name, :class => "profilesmstext"%><br />
    <%= c.text_field :postcode, :class => "profilesmstexta"%>
    <%= c.text_field :telephone_number, :class => "profilesmstext" %>
    <%= c.submit, :value="Go!" %>

Это простая версия формы для одного инструктора, по сути, я говорю о том, чтобы поместить туда цикл кнопок отправки и идентификаторов инструктора.

Так что я будуесть цикл (псевдокод ..)

    @instructors each do |i|
      <%=c.submit, :value => "go!", :onclick => "javascript to change hidden field value"%>
     <script / js>
     <function doChicagoShuffleOnId etc >
     </script>
    <%end%>

Итак, мой вопрос - что такое js, чтобы изменить этот скрытый тег поля?Дополнительный вопрос - это имеет смысл для меня, может быть мусор, если есть более разумное решение, пожалуйста, дайте мне знать!

Спасибо!

1 Ответ

7 голосов
/ 01 апреля 2012
document.getElementById('theId').value = "what ever you want";

Как и все остальные input

...