2012-04-01 8 views
2

Ich fahre Rails 3 und benutze Prototype. Das sagte, ich frage nur wirklich eine JS Frage ..Ändere den Wert von hidden_field_tag ​​mit JS (Prototyp & Rails 3)

Ich habe ein Formular, es ist ziemlich einfach. In der Form habe ich einen verstecktes Feld tag:

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

Das ist alles in Ordnung und gut, wenn ich die Form zu einem bestimmten Lehrer vorlege.

Ich habe eine andere Seite, die jedoch viele Ausbilder anzeigt. Anstatt die Instructor-ID wie im obigen Code selbst anzulegen, möchte ich den Wert des versteckten Feldes abhängig davon ändern, welche Schaltfläche zum Senden gedrückt wurde.

Dh, ein Formular, mehrere Senden-Schaltflächen. Das Formular wird gesendet und alles wird gut, der Benutzer wird fortfahren können und einen anderen Senden-Knopf drücken und seine Daten an einen anderen Ausbilder senden. Um dies zu erreichen, möchte ich JavaScript verwenden, um den Wert meines versteckten Feldes bei Klick zu ändern.

<%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!" %> 

Das ist die einfache Ausbilder-Version des Formulars ist, im Wesentlichen, was ich rede ist dabei eine Schleife von Submit-Buttons und Lehrer ids dort setzen.

Also werde ich eine Schleife (Pseudo-Code ..)

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

Also meine Frage ist - was die js ist, dass versteckte Feld-Tag zu ändern? Zusätzliche Frage - Das macht Sinn für mich, kann Quatsch sein, wenn es eine vernünftige Lösung gibt lass es mich wissen!

Danke!

Antwort

6
document.getElementById('theId').value = "what ever you want"; 

Genau wie bei jedem anderen input

+0

Hallo Dank dafür, es werde ich jetzt einen Schuss. Ich habe ähnliche Dinge versucht, aber ich gehe jetzt davon aus, dass ich einen Fehler gemacht habe, da der Wert nicht im versteckten Feld angezeigt wurde. Ich glaube, ich habe einen Tippfehler gemacht, lassen Sie mich sehen ... – LpLrich

+0

Ich gab meine hidden_field_tag ​​die: ID => "instructor_hidden_field" und mein Loop war do rr, also endete ich mit ... this.form. instructor_hidden_field.value = # {rr [: instructor_id]}; Danke für die Antwort (en). – LpLrich

+0

Legen Sie Ihre Antwort richtig fest, obwohl ich eine andere Zeile verwendet habe, als Sie vorgeschlagen haben. Danke für die Antwort, Gdoron. – LpLrich

Verwandte Themen