2016-05-16 7 views
0

Wie erhält man den Wert des ausgewählten Elements? Und speichern Sie es in einer Variablen für die Anzeige in span. Ich habe versucht, direkt in die Datenbank zu speichern. Die Datenbank speichert den ausgewählten Wert auch nicht.Ausgewählte Werte radio_button rails

... 
<%= f.collection_radio_buttons(:route_id, Route.all, :id, :time_trip, {}, {name: "timeselect", class: "timeselect"}) %> 
... 
<span id="timevalue"></span> 

JQuery

(document).ready(function() { 

$('input[name="timeselect"]:radio').change(function(){ 

     var str3=""; 
     $('input[name="timeselect"]:checked').val(); 
      str3 += $(this).text() + "\n"; 

     $("#timevalue").text(); 
    }); 
}); 

Antwort

0

den Namen Option Aufschalten nur in der Lage sein, die zu wählen ist nicht eine sehr gute Idee, da es die Parameter beeinflussen wird.

In Rails, wenn Sie die Form Builder verwenden:

<%= form_for(Foo.new) %> 
    <%= f.collection_radio_buttons(:route_id, Route.all, :id, :time_trip, {}, { class: "timeselect" }) %> 
<% end %> 

Dies würde Ihnen die folgende params hash:

foo: { 
    route_id: 1 
} 

Die "root" Schlüssel durch den Aufruf .model_name auf dem Modell abgeleitet wird Sie binden Sie an den Formulargenerator.

Diese params können einfach starke Parameter der weißen Liste werden:

params.require(:foo).permit(:route_id) 

Sie das Element auswählen, indem Sie:

$('input[name="foo[route_id]"]') 

Oder durch die ID - die einfachste Art und Weise jeweils zu überprüfen, indem Sie entweder Blick auf die HTML-Ausgabe oder den Browser-Inspektor verwenden. .

+0

Die Datenbank speichert, aber '$ ('input [name = "Aufträge [route_id]"]: radio') ändern (function() { var str3 = ""; $ ('input [Name = "orders [route_id]"]: geprüft '). val(); str3 + = $ (this) .text() + "\ n"; $ ("# zeitwert"). text (str3) }); 'hat nicht funktioniert – Helga