2014-07-15 2 views
0

Ruby on Rails 4.1html 매개 변수를 Rails 배열 매개 변수에 넣습니다.

이 양식은 POST가 완료 될 때 매개 변수를 배열에 배치합니다. 청구서 수신 주소를 배송 주소와 동일한 자동 완성 스크립트로 작성하고 있습니다. 스크립트가 실행되면 값을 html 값으로 지정합니다.

이러한 값을 보내는 지불 배열에 어떻게 넣으시겠습니까?

cc_name 및 ship_name이 지급 배열 외부에있는 로그, 나는 내부를 원하는 :

Parameters: {"utf8"=>"✓", "authenticity_token"=>"x", "cc_name"=>"Bobby", "payment"=>{"telephone"=>"555", "email"=>"[email protected]", "address1"=>"641 W Rt 66", "address2"=>"", "city"=>"Glendora", "state"=>"CA", "postal_code"=>"91740", "country"=>"USA", "cc_type"=>"Visa", "cc_number"=>"5555555588884444", "ccv"=>"321", "expires_on(1i)"=>"2014", "expires_on(2i)"=>"9", "expires_on(3i)"=>"1", "ship_address1"=>"641 W Route 66", "ship_address2"=>"", "ship_city"=>"Glendora", "ship_state"=>"c", "ship_postal_code"=>"91740", "ship_country"=>"u", "card_holder_auth"=>"1", "charge_auth"=>"1", "name_auth"=>"David Duke", "date_auth"=>"7"}, "billingtoo"=>"on", "ship_name"=>"Bobby", "commit"=>"Send Payment"} 

양식 (마이너스 혼란) : 당신은 필드의 이름을 덮어 쓰는

<%= form_for @payment do |f| %> 

<%= render 'shared/payment_error_messages' %> 

<h1>Fill in all blank areas with payment information:</h1> 
<div class="col-md-5 col-md-offset-1"> 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
      <h3 class="panel-title">Applicant Information</h3> 
     </div> 
     <div class="panel-body"> 
     <%= f.label :cc_name, "Name as it appears on credit card:" %><br> 
     <%= f.text_field :cc_name, class: "input-lg", :name => "cc_name" %> <%#= @payment.errors.get(:cc_name) %> 

     <%= f.label :telephone, "Telephone Number:" %><br> 
     <%= f.text_field :telephone, class: "input-lg" %> 
     ... 
     <div class="panel-body"> 
     <input type="checkbox" name="billingtoo" onclick="FillBilling(this.form)"><em>Shipping Address is the same as the Billing Address</em> 
     <p>Please Note: This cannot be a P.O box address</p> 

     <%= f.label :ship_name, "Name:" %><br> 
     <%= f.text_field :ship_name, class: "input-lg", :name => "ship_name" %> 

     <%= f.label :ship_address1, "Address 1:" %><br> 
     <%= f.text_field :ship_address1, class: "input-lg" %> 
     ... 

     <%= f.submit "Send Payment", class: "btn btn-lg btn-primary", id: "commit" %> 
     </div> 
    </div> 
</div> 
<% end %> 
<br/> 
<%= link_to 'Back', session[:last_page] %> 
</div> 

<script> 
function FillBilling(f) { 
    if(f.billingtoo.checked == true) { 
    f.ship_name.value = f.cc_name.value; 

    } 
} 
</script> 

답변

1

:

:name => "cc_name" 

이것이 외부로 전송 된 이유입니다. :name 할당을 제거하십시오 : 확인란을 선택하면 다른 필드에 쓰기 작업을 수행하는 자바 스크립트에 이름 할당 :

<%= f.text_field :cc_name, class: "input-lg" %> 

<%= f.text_field :ship_name, class: "input-lg" %> 
+0

내가 사용하고 있습니다. – DDDD

+0

기본적으로 이름은 각각 [cc_name] 지불 및 [ship_name] 지불입니다. 자바 스크립트에서 그 방법으로 그들을 참조하거나 더 나은, 필드에 ID를 제공합니다. –

+0

그 이름을 사용했지만 스크립트에서 값이 정의되지 않는다고 불평했습니다. 하나를 입력하면 다른 하나는 정의되지 않는다고 말합니다. Uncaught ReferenceError : ship_name이 정의되지 않았습니다. – DDDD

관련 문제