2016-09-20 3 views
0

f.select 필드의 값으로 hidden_field를 채우는 방법을 찾고 있지만 어려움을 겪고 있습니다. 내가 자바 스크립트를 사용하려고했지만 haml에서 만든 html은 값을 전달하려는 select에 ID를 할당하기 어렵게 만듭니다.f.hidden_field를 f.select 값으로 채 웁니다.

= f.select :trial, [['Yes', 'true'], ['No', 'false']], {}, :id => "free-trial", class: 'selectpicker mandatory' 

이것은 다음과 같은 HTML을 생성

<div class="col-sm-4"> 
    <select class="selectpicker mandatory" id="free-trial" name="campaign[trial]" style="display: none;"> 
    <option value="true">Yes</option> 
    <option value="false" selected="selected">No</option> 
    </select> 
    <div class="btn-group bootstrap-select mandatory"> 
    <button type="button" class="btn dropdown-toggle" data-toggle="dropdown" data-id="free-trial" data-original-title="" title=""> 
     <span class="filter-option pull-left">No</span>&nbsp; 
     <span class="caret"></span> 
    </button> 
    <ul class="dropdown-menu" role="menu" style="max-height: 133px; overflow-y: auto; min-height: 0px;"> 
     <li rel="0"> 
     <a tabindex="0" class=""> 
      <span class="text"> 
      Yes 
      </span> 
      <i class="icon-ok check-mark"></i> 
     </a> 
     </li> 
     <li rel="1" class="selected"> 
     <a tabindex="0" class=""> 
      <span class="text">No</span> 
      <i class="icon-ok check-mark"></i> 
     </a> 
     </li> 
    </ul> 
    </div> 
</div> 

디스플레이 실제로 두 선택 연관된 ID없이 표시되는 ID와 할당 된 제 숨겨진 하나이다이 HTML. 결과적으로 보이는 select를 클릭하면 관련된 jquery doesnt가 ​​발생했다는 것을 의미합니다.

+0

표시, 도움이 필요하면 알려주세요. –

+0

이해가 안됩니다. select에 id를 할당하는 것이 어렵다고 말했지만 select에는 이미 '무료 평가판'ID가 있습니다 – luissimo

+0

@luissimo 질문에 대한 응답으로 방금 질문을 업데이트했습니다. 마지막 단락에 자세히 나와 있습니다. – EamonnMcElroy

답변

0

내가 제대로 이해했다면, select에서 hidden_input까지 값을 캐치해야합니다. jquery를 사용하면 다음과 같이 할 수 있습니다.

$('#free-trial').on('change', function(){ 
    var val = $(this).val(); 
    $('#your_hidden_input').attr('value', val); 
} 
+0

나는 질문에서 haml에 의해 만들어진 두 개의 선택이 있다고 말했다. id 속성이 숨겨져 있고 id 속성이없는 기타가 숨겨져 있습니다. 따라서 나는 숨겨진 선택을 클릭 할 수 없으므로 자유 재판을 # 식별자로 사용할 수 없으며 # 자유 재판 식별자가없는 보이는 선택을 사용합니다. – EamonnMcElroy

관련 문제