2016-11-06 9 views
0

지금은 숨겨진 필드 태그에 plan_id를 하드 코딩하고 있습니다. 이 기능은 사용자가 내 앱에서 제공하는 무료 요금제를 선택할 때 유용합니다. 그러나 분명히 다른 ID를 가진 유급 계획을 선택할 때 모든 일이 엉망이됩니다. plan_id가 유료 계획 인 경우 내 양식에서 JS를 사용하여 지불 부분을 렌더링하지만 무료 계획 인 경우 지불 부분을 건너 뜁니다. 그래서, 어떻게하면 사용자가 유료 플랜이나 무료 플랜을 선택했는지에 따라 매개 변수를 동적으로 설정할 수 있습니다. 여기 내 코드가있다.조건부 숨김 필드 태그 - 레일

 <label> 
     <%= hidden_field_tag :plan_id, 1 %> 
     <%= f.submit "Select", class: "button-big reverse-blue" %> 
     </label> 

사용자가 이것을 선택하면. 객체가 만들어지고 모든 것이 훌륭합니다. 그러나 이것은 단지 하나의 선택 사항입니다. 사용자는 이것을 선택할 수도 있습니다.

 <label> 
      <input type="radio" name="plan_id" id="plan_id_5" value="5" data-plan-form-next data-plan-name="Surveillance Van" data-plan-price="79" /> 
      <span class="button-big reverse-blue">Select</span> 
     </label> 

사용자가이 버튼을 선택하면 JS가이 페이지를 숨기고 결제 양식을 숨김 해제합니다. 사용자가 지불 정보를 입력하고 양식을 제출하면 이제는 plan_id이 1이 아니라는 것을 제외하고는 모두 plan_id이어야합니다. 제출 버튼에 plan_id 1의 매개 변수를 설정할 수 있습니까?

그럼,이 모든 것이 있습니다. 무료 계획을 선택하지 않으면 매개 변수를 하나의 계획 ID로 하드 코딩 할 수 없습니까? 바라기를 바란다면 더 많은 코드 나 더 많은 설명이 필요한지 알 수있을만큼 분명하다.

답변

0

이 비트 해키하지만 당신은

<%= hidden_field_tag :plan_id, '', id: 'plan_id_hidden'%> 

다음 jQuery를 사용하거나 그냥 일반 사용자 hidden_field_tag에 ID를 할당

을 선택하는 라디오 버튼에 따라 숨겨진 필드에 값을 할당 할 jQuery를 사용할 수 있습니다 가치를 설정하는 자바 스크립트. with jQuery

$(document).ready(function(){ 
    $("[type=radio]").change(function() { 
    if ($("#plan_id_1").is(':checked')) { 
     $('#plan_id_hidden').val('1') 
    } else if ($("#plan_id_2").is(':checked')) { 
     $('#plan_id_hidden').val('2') 
    } else { 
     $('#plan_id_hidden').val('') 
    } 
    }); 
});