2012-10-22 2 views
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> 

, 나는 다음과 같은 한 :

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

체크 박스를 클릭하면 배송료를 지불 한 후 25가 표시되지만 아무 것도 나타나지 않습니다. 어떤 아이디어.

편집 : 나는 대답 # 1에서 얻은 정보를 반영하기 위해 질문을 편집 할 수 있지만 난 아직 아무것도보고 있지 않다

참고. 당신이 원하는 경우 지금

+0

"운송료가 부과되면 25가 표시됩니다." '# shipping_charges'가 아닌'# payment_value'의 값을 변경하고 있습니다. – shime

+0

Typo. 나는 그것을 반영하기 위해 질문을 편집했다. 내가 다음과 같이해도 : <% = hidden_field : shipping_charges, : value => 50 %> '배송비'이후에도 아무 것도 볼 수 없습니다. – user1765002

+0

자바 스크립트 파일을로드하고 있는지 확인하십시오. 'alert ("yup, loaded");' – shime

답변

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()" %> 

당신은 자바 스크립트 방법은 클릭에 호출되지 않습니다 것을 해결까지

. 당신이 이러한 범위로, 표준 DOM 설정할 수 없습니다로

자바 스크립트 방법은 당신이 (더 크로스 브라우저 지원을위한 jQuery의 .html() 방법을 사용, 또는 더 나은) innerHTML을 사용해야합니다 .value를 사용하여, 하나 정확하지 :

function add_rush_shipment_charges() 
{ 
    document.getElementById('shipping_charges').innerHTML = '25'; 
} 
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()를 호출!

+0

이것은 작동하지 않습니다. total_shipping의 출처에 대해서는 잘 모르겠지만 new.html.erb : <% = hidden_field : total_shipping_charges %>에 이와 같은 문장을 추가하고 onclick 액션을 "calculate_total_cost"로 변경한다고 가정합니다. 이것은 보이지 않습니다. total_shipping에 값을 지정해도 표시되지 않습니다 (내가 게시 한 코드에서 오타가 수정되었습니다 - 누락> – user1765002

+0

). 마크 업을 확인하십시오! 'total_shipping ID가있는 범위를 추가했습니다. ' – HungryCoder

+0

원본 코드의 문제는 동일한 DOM id, 숨겨진 입력 및 범위를 가진 두 개의 요소가 있다는 것입니다. HungryCoder가 범위의 ID 값을 변경하여이를 수정했습니다. –