2017-10-13 4 views
0

ラジオボタンを選択しなくてもフォームが送信されないようにする必要があります。
通常、私は思いを明確にする私は、ビューとコントローラ内ではなく、モデルのものにしたいRailsにはコレクションのラジオボタンが必要です

(データも送信されません)

<%= form_tag("/bookings/new", method: "get") do %> 
    <% @flights.each do |flight| %> 
    <%= radio_button_tag :flight_id, flight.id %> 
    <% end %> 
    <%= submit_tag "book now" %> 
<% end %> 

編集、
<%= f.text_field :name, required: true %>
しかし、私は多くのラジオボタンを持っていると私はのみ動作するようにフォームのいずれかが必要として、私はそれが

+0

あなたは "データも送信されてはならない" とはどういう意味ですか?フォームを送信したくない場合(フロントエンドとサーバーの間にリクエスト/レスポンスサイクルがない場合)、おそらくフロントエンドでjavascriptを使用する必要があります。 – jvillian

+0

あなたはモデルではなくフロントエンドで検証をしたいのですか? – krishnar

+1

この質問は、レール関連よりもjavascript関連です。 Cf:https://stackoverflow.com/questions/1423777/how-can-i-check-whether-a-radio-button-is-selected-with-javascript –

答えて

1

あなたがチェックボックスの存在を確認するためにモデルに検証を設定することができます実装する方法がわかりませんもしjavasならcriptは無効です。これはより堅牢な方法です。ここ

validates :flight_id, :acceptance => true

ドキュメント - http://guides.rubyonrails.org/active_record_validations.html#acceptance

編集

function validateCheckBox() { 
    var x = document.getElementById("flight_id").checked; 
    if(!x) {alert("Not checked")}   
} 

<%= submit_tag "book now" , :onclick => "validateCheckBox();" %> 
+0

私の投稿の2行目に書いたように、私はモデル内ではなく、ビューとコントローラー内でそのようにしています。 – Salomanuel

+1

ビューとコントローラーについて言及すると、すぐにフロントエンドの問題になります。 javascriptを使用してください。編集を参照してください。 – arjun

関連する問題