まだこのパズルを解こうとしています。ここにもっと完全な例があります。モデルは PanOrder と呼ばれます。
/assets/javascripts/pan_orders.js にあるものは次のとおりです。
function pans_total_cost ()
{
var p;
var individual_price;
var n;
var pans;
p = document.getElementById("price_per_pan");
individual_price = p.value;
n = document.getElementById("number_of_pans");
pans = n.value;
if (pans > 0)
{
document.getElementById.html("pans_total").value = n * p;
}
}
...そして、これが私の /views/pan_orders/_form.html.erb にあるものです
<%= form_for(@pan_order) do |f| %>
<% if @pan_order.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@pan_order.errors.count, "error") %> prohibited this pan_order from being saved:</h2>
<ul>
<% @pan_order.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.hidden_field :price_per_pan, :value => 300 %>
<%= f.hidden_field :extra_shipping, :value => 25 %>
<div class="field">
<%= select_tag :number_of_pans, options_for_select(pans_array)%>
</div>
<h3>Subtotal: <span id="pans_total"></span></h3>
<div class="field">
<%= check_box_tag :expedited_shipping, :checked => false, :onclick => "pans_total_cost()" %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
...そして、これが私の /helpers/pan_orders_helper.rb にあるものです
module PanOrdersHelper
def pans_array
numbers = []
zero = ["0", 0]
one = ["1", 1]
two = ["2", 2]
three = ["3", 3]
four = ["4", 4]
five = ["5", 5]
numbers << zero << one << two << three << four << five
end
end
しかし、フォームが表示され、ドロップダウン リストから 1 つ以上のパンを選択し、チェックボックスをクリックすると、「小計」の後に何も表示されません。