Ich habe ein Formular, das 8 auswählbare Optionsfelder für ein Attribut hat: mvp, und ein Auswahl-Dropdown-Menü am Ende. Ich möchte, dass der Benutzer eine Optionsschaltfläche für einen der entsprechenden Werte drücken kann, oder nicht eine Optionsschaltfläche auswählen und eine Option aus dem Dropdown-Menü wählen. Sie können nicht beide ein Optionsfeld und eine Option aus dem Auswahlfeld auswählen. Hier ist mein Code. Bitte beraten.Wie Radio-Buttons verwenden und Felder XOR in einem Formular, in Schienen auswählen?
HTML
<%= form_for(current_user.awards.build) do |f| %>
<%= f.radio_button :mvp, 'Stephen Curry' %>
<%= f.radio_button :mvp, 'Lebron James' %>
<%= f.radio_button :mvp, 'Kevin Durant' %>
<%= f.radio_button :mvp, 'Russell Westbrook' %>
<%= f.radio_button :mvp, 'Kawhi Leonard' %>
<%= f.radio_button :mvp, 'Karl-Anthony Towns' %>
<%= f.radio_button :mvp, 'Chris Paul' %>
<%= f.select :mvp, ['Al Horford', 'Al Jefferson', 'Andre Drummond', 'Andre Igoudala','Andrew Wiggins', 'Anthony Davis', 'Austin Rivers', 'Ben Simmons', 'Blake Griffin', 'Brook Lopez', 'Carmelo Anthony', 'Chandler Parsons','Chris Bosh', 'Damian Lillard', 'Deandre Jordan', 'Demar Derozan', 'Demarcus Cousins', 'Derrick Favors', 'Dirk Nowitzki', 'Draymond Green', 'Dwight Howard', 'Dwyane Wade', 'Eric Bledsoe', 'Giannis Antetokounmpo', 'Greg Monroe', 'Goran Dragic', 'Gordon Hayward', 'Harrison Barnes','Hassan Whiteside', 'Isaiah Thomas', 'Jahlil Okafor', 'James Harden', 'James Jones','Jeff Teague', 'Jimmy Butler', 'John Wall', 'Kemba Walker','Kevin Love', 'Khris Middleton', 'Klay Thompson', 'Kristaps Porzingis', 'Kyle Lowry', 'Kyrie Irving', 'Lamarcus Aldridge', 'Marc Gasol', 'Mike Conley', 'Nerlens Noel', 'Nicolas Batum', 'Nikola Pekovic', 'Pau Gasol', 'Paul George', 'Paul Millsap','Ricky Rubio','Rudy Gobert', 'Victor Oladipo', 'Zach Lavine'], include_blank: "Select One" %>
<%= f.submit "Submit Pick" %>
Ab jetzt, wenn ich versuche, in Form zu füllen, egal welche Option ich in den Radio-Buttons drücken, wird der Wert, der immer vorgelegt bekommt, ist der in der Auswahlbox . Ich habe eine include_blank: -Option am Ende des Auswahlfelds hinzugefügt, aber der Wert, der gesendet wird, ist nur ein leerer Wert. Aus irgendeinem Grund ist die Standardübergabe das, was im Auswahlfeld ausgewählt wird.
ok, das, weil du den gleichen * Namen * für die Optionsschaltfläche hast und das Tag auswählst. Sie müssen uniq Name haben, ansonsten zuletzt * gewinnt * immer. –
@ArupRakshit Wow, das macht Sinn, wie mache ich einen anderen Namen? Das: mvp ist das Attribut, für das der Wert in meinem Formular übermittelt wird. Wie würde ich ihnen ein benutzerdefiniertes Tag geben? – Joe
Geben Sie einen anderen Namen ein und führen Sie dann innerhalb des Controllers eine Prüfung durch, falls sonst, und weisen Sie diese benutzerdefinierten Namen dem tatsächlichen Attribut zu. Sie müssen wie 2-3 Zeilen Code schreiben, um eine Entscheidung zu treffen, und den Parameter anpassen, bevor Sie sie an AR zum Erstellen/Aktualisieren senden. frei Jetzt? :) –