質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

0回答

2575閲覧

入力値の自動計算&railsへ送信

RyosukeKuwabara

総合スコア8

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/06/07 12:02

前提・実現したいこと

railsを用いて入力値を自動で計算してくれる入力フォームを作りたいです。
AirBnbの宿泊予約のシステムにあるようなものです。
このソースの書き方であっておりますでしょうか。

例:
https://www.airbnb.jp/rooms/70792?check_in=2018-06-12&guests=3&adults=3&check_out=2018-06-13&infants=1

予約フォーム作成進捗共有(↓作りたいもの)
https://gyazo.com/897f8d2d84e591c5dbb00be64fcf56db

該当のソースコード

javascript

1$(function(home) { 2$("#reservation_new").on("input", function() { 3 4 //滞在期間 -① 5 var checkin_date = $('.checkin_date_input').val(); 6 var checkout_date = $('.checkout_date_input').val(); 7 var duration_of_stay = checkout_date - checkin_date; 8 9 //宿泊料金(1日) -② 10 var accomodation_fee = ${home.price.accomodation_fee}; 11 var number_of_guests = $('.number_of_guests_input').val(); 12 var fee_for_additional_people = ${home.price.additional_fee_per_person} * number_of_guests; 13 14 //小計 ①+② 15 var sub_total = (accomodation_fee + fee_for_additional_people) * duration_of_stay; 16 17 //その他料金 18 var cleaning_fee = $('.cleaning_fee_date_input').val(); 19 var service_fee = $('.service_fee_input').val(); 20 21 //合計 22 var total_price = sub_total + cleaning_fee + service_fee 23 24 25 $('.reservation_new__body--hidden').css({ 26 'display':'block' 27 }); 28 29 $('.accomodation_fee_per_night').val(accomodation_fee); 30 $('.total_price_input').val(total_price); 31 32 }) 33}); 34 35

haml

1.container#reservation_new 2 = form_for [@home, @home_reservation] do |f| 3 .col-md-8 4 .reservation_new__heading.col-md-4 5 .accomodation_fee_per_night 6 = '#{@home.price.accomodation_fee}' 7 .reservation_new__body 8 .checkin_date 9 = f.text_field :checkin_date, required: true, autofocus: true, placeholder: "チェックイン", class: "checkin_date_input" 10 = f.text_field :checkout_date, required: true, autofocus: true, placeholder: "チェックアウト", class: "checkout_date_input" 11 = f.text_field :number_of_guests, required: true, autofocus: true, placeholder: "ゲスト1人", class: "number_of_guests_input" 12 .reservation_new__body--hidden 13 = f.text_field :accomodation_fee, @home.price.accomodation_fee, required: true, class: "accomodation_fee_input" 14 = f.text_field :cleaning_fee, @home.price.cleaning_fee, required: true, class: "cleaning_fee_date_input" 15 = f.text_field :service_fee, @home.price.service_fee, required: true, class: "service_fee_input" 16 = f.text_field :total_price, required: true, class: "total_price_input" 17 18 .row.text-center.proto-btn 19 = f.submit "予約をリクエスト", id: "button", class: "btn btn-lg btn-primary btn-block" 20

補足情報(FW/ツールのバージョンなど)

現在作成中のためモデルのカラムの整合性が若干ずれています。
下記の流れで実装を考えておりますが、他に良いやり方があればご教示いただけると嬉しいです。

コントローラーから値取得→ビューで表示→JSで入力値をもとに計算→計算結果をrailsに送信

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/06/08 21:53

「送信」をどのレベルでかが把握できなかったのですが、htmlもご提示いただけますか。またJavaScript側に ${home.price.accomodation_fee}といった表現がありますが、テンプレートファイルに直書きしているという認識で良いでしょうか。
m.ts10806

2018/06/08 21:53

「送信」をどのレベルでかが把握できなかったのですが、htmlもご提示いただけますか。またJavaScript側に ${home.price.accomodation_fee}といった表現がありますが、テンプレートファイルに直書きしているという認識で良いでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問