2

new.html.erbには、次のものがあります。

<%= hidden_field :shipping_charges %>
<%= label_tag :rush_shipment, "Rush My Shipment" %>>
<%= check_box_tag :rush_shipment, :checked => false, :onclick => "add_rush_shipment_charges()" %>

    <p>My Shipping charges: <span id="shipping_charges"></span> 

私のjavascriptファイルには、次のものがあります。

function add_rush_shipment_charges()
{
    document.getElementById('shipping_charges').value = 25;
}

チェックボックスをクリックすると、配送料の後に25が表示されるはずですが、何も起こりません。何か案は。

編集:

回答#1から得た情報を反映するように質問を編集しましたが、まだ何も表示されていないことに注意してください。

4

2 に答える 2

2
Where you want to show the shipping charges? Lets assume your view is like:
<%= hidden_field :shipping_charges %>
<%= label_tag :rush_shipment, "Rush My Shipment" %>>
<%= check_box_tag :rush_shipment, :checked => false, :onclick => "add_rush_shipment_charges()" %>
<h3> You shipping charges are: <span id="total_shipping"></span</h1>

これで、送料の合計を計算した後、スパンを更新するだけです。

function calculate_total_costs(){
  //cost calculation logics
  document.getElementById('total_shipping').value = TOTAL_COSTS
}

さて、必要なcalculate_total_costs()ときに関数を呼び出してください!

于 2012-10-22T10:40:11.803 に答える
1

チェックボックスタグが正しくありません:

<%= check_box_tag :rush_shipment, :checked => false, :onclick => "add_rush_shipment_charges()" %>

する必要があります:

<%= check_box_tag :rush_shipment, "yes", false, :onclick => "add_rush_shipment_charges()" %>

これを修正するまで、JavaScriptメソッドはクリック時に呼び出されません。

を使用してスパンなどの標準DOMを設定できないため、JavaScriptメソッドも正しくありません。innerHTMLを使用する必要があります(または、クロスブラウザーのサポートを向上させるために.valuejQueryのメソッドを使用することをお勧めします)。.html()

function add_rush_shipment_charges()
{
    document.getElementById('shipping_charges').innerHTML = '25';
}
于 2012-10-22T23:43:51.390 に答える