2016-05-16 5 views
0

Comment obtenir la valeur de l'élément sélectionné. Et enregistrez-le dans une variable pour l'affichage en durée. J'ai essayé d'enregistrer directement dans la base de données. La base de données n'enregistre pas non plus la valeur sélectionnée.Valeurs sélectionnées 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(); 
    }); 
}); 

Répondre

0

Redéfinition l'option nom juste pour être en mesure de choisir l'est pas une très bonne idée car cela affectera les paramètres.

Dans Rails lorsque vous utilisez les constructeurs de formulaire:

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

Cela vous donnera le hachage params suivant:

foo: { 
    route_id: 1 
} 

La clé « racine » est déduit en appelant .model_name sur le modèle que vous lie au constructeur de formulaire.

Ces params peuvent être simplement dans la liste blanche paramètres forts:

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

Vous pouvez sélectionner l'élément par:

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

Ou par l'ID - la façon la plus simple de vérifier chacun soit regarder la sortie HTML ou en utilisant l'inspecteur du navigateur. .

+0

La base de données permet d'économiser, mais '$ ('entrée [name = "commandes [route_id]"]: radio') modifier (function() { var str3 = ""; $ ('entrée [nom = "orders [route_id]"]: checked '). val(); str3 + = $ (ce) .text() + "\ n"; $ ("# timevalue"). text (str3) }); 'ne pas travaillé – Helga