2014-09-16 5 views
0

나는 훌륭한 HTML 양식을 가지고 있는데, 그것에 합리적인 데이터가 있으므로 토큰 매개 변수 만 내 서버로 간다. 그것은 다음과 같이이다 :레일스가 양식의 매개 변수를 보내는 방법

<form id="payment-form" method="POST">    
      <div class="usable-creditcard-form"> 
       <div class="six columns"> 
        <div class="input-group nmb_a"> 
         <div class="icon ccic-brand"><label for="number">Número do Cartão</label></div> 
         <input autocomplete="off" class="credit_card_number" data-iugu="number" placeholder="Número do Cartão" type="text" value="" /> 
        </div> 
       </div> 

       <div class="six columns"> 
        <div class="input-group nmb_b"> 
         <div class="icon ccic-cvv"><label for="verification_value">Codigo de Seguranca</label></div> 
          <input autocomplete="off" class="credit_card_cvv" data-iugu="verification_value" placeholder="CVV" type="text" value="" /> 
        </div> 
       </div> 

       <div class="six columns"> 
        <div class="input-group nmb_c"> 
         <div class="icon ccic-name"><label for="full_name">Nome Completo</label></div> 
         <input class="credit_card_name" data-iugu="full_name" placeholder="Titular do Cartão" type="text" value="" /> 
        </div> 
       </div> 

       <div class="six columns"> 
         <div class="input-group nmb_d"> 
         <div class="icon ccic-exp"><label for="expiration">Data de Expiracao (MM/AA)</label></div> 
          <input autocomplete="off" class="credit_card_expiration" data-iugu="expiration" placeholder="MM/AA" type="text" value="" /> 
         </div> 
       </div> 
      </div> 

      <div class="six columns"> 
        <div class="token-area"> 
         <input type="hidden" name="token" id="token" value="" readonly="true" size="64" style="text-align:center" /> 
        </div> 
      </div> 

      <div> 
       <button type="submit">Comprar</button> 
      </div>  

하지만 레일에서 양식 도우미를 사용하는 경우, 모든 매개 변수가 내 서버로 전송됩니다 만, 왜, 난 모르겠어요,하지만 난 양식 헬퍼를 사용하여, 그 싶습니다

<%= form_tag iugu_checkout_path, :id=>"payment-form" do%> 
    <div class="usable-creditcard-form"> 
    <div class="input-group nmb_a"> 
     <div class="icon ccic-brand"> 
     <%= label_tag :number, "Número do Cartão" %> 
     </div> 
    <%= text_field_tag :number, nil , :class=> "credit_card_number", "data-iugu"=> "number" %> 
</div> 


<%= label_tag :verification_value, "Codigo de Seguranca" %> 
<%= text_field_tag :verification_value, nil , :class=> "credit_card_cvv", "data-iugu"=> "verification_value" %> 

<%= label_tag :full_name, "Nome Completo" %> 
<%= text_field_tag :full_name, nil , :class=> "credit_card_name", "data-iugu"=> "full_name" %> 

<%= label_tag :expiration, "Data de Expiracao (MM/AA)" %> 
<%= text_field_tag :expiration, nil , :class=> "credit_card_expiration", "data-iugu"=> "expiration" %> 

    <%= hidden_field_tag :token%> 

    <div class="actions"> 
    <%= submit_tag "Comprar" %> 
    </div> 
<% end %> 

왜 하나의 매개 변수 내 서버 및 양식 모든 매개 변수가 전송됩니다 도우미, 어떻게 함께가는 HTML 양식 I 만 보내 토큰 필드는 다음

이 코드 전송되었습니다 양식 도우미를 사용하는 토큰 매개 변수?

+0

그냥 토큰 매개 변수를 보내고 텍스트 입력 상자 대신 레이블에 정적 텍스트로 다른 모든 토큰을 표시하면됩니다. 양식 안의 텍스트 필드는 서버로 다시 전송됩니다. 따라서 값을 서버로 보내지 않으려면 텍스트를 입력 텍스트 상자가 아닌 텍스트로 표시하십시오. –

+0

하지만 사용자가 입력해야합니다! 차이점은 데이터가 JS에 의해 처리되고이 JS (API)가 나를위한 토큰 필드를 채운다는 것입니다. –

+0

또한 질문에 답하기 위해'text_field_tag'는'text_field_tag'의 첫 번째 매개 변수로 지정한 이름으로 텍스트 필드를 생성합니다. 따라서 양식이 전송되면 이름이있는 모든 텍스트 필드가 각각의 값과 함께 전송됩니다. html 양식에는 텍스트 필드에 이름 속성이 전혀 없지만 그게 왜 :) –

답변

1

위의 의견과 함께. 내 마음에 오는

매우 빠른 해결책은 당신이

text_field_tag nil, nil , :class=> "credit_card_number", "data-iugu"=> "number" 
에 text_field_tag을 변경해야 의미이

<input autocomplete="off" class="credit_card_number" data-iugu="number" placeholder="Número do Cartão" type="text" value="" /> 

뭔가를 얻을, 그래서 그냥 text_field_tag에서 이름 특성을 제거한다는 것입니다 대신

text_field_tag :number, nil , :class=> "credit_card_number", "data-iugu"=> "number" 

물론 당신은 당신이 보내고 싶지 않은 다른 모든 텍스트 필드를 변경해야합니다. 도움이 되길 바랍니다

+0

매력처럼 작동! 감사! –

+0

환영합니다 :) –

관련 문제