2016-10-03 89 views
0

我已经HAML像这样:设定输入值 - 问题与HAML

.form-group 
    .col-sm-3.control-label 
    = f.label :trial, "Free Trial Offered" 
    %span.tipsy{"data-toggle" => "tooltip", title: t("campaigns.services_form_free_trial_help")} 
     = link_to content_tag(:i, "", class: 'glyphicon glyphicon-question-sign'), '#' 
    .col-sm-4 
    = f.select :trial, [['Yes', 'true'], ['No', 'false']], {}, class: 'selectpicker mandatory' 

这将创建下列HTML:

<div class="form-group"> 
    <div class="col-sm-3 control-label"> 
    <label for="campaign_trial">Free Trial Offered</label> 
    <span class="tipsy" data-toggle="tooltip" title="" data-original-title="Select whether or not you wish to offer a free trial with your service."> 
     <a href="#"><i class="glyphicon glyphicon-question-sign"></i></a> 
    </span> 
    </div> 
    <div class="col-sm-4"> 
    <select class="selectpicker mandatory" id="campaign_trial" name="campaign[trial]" style="display: none;"> 
     <option value="true" selected="selected">Yes</option> 
     <option value="false">No</option> 
    </select> 
    <div class="btn-group bootstrap-select mandatory"> 
     <button type="button" class="btn dropdown-toggle" data-toggle="dropdown" data-id="campaign_trial" data-original-title="" title=""> 
     <span class="filter-option pull-left"> 
      Yes 
     </span>&nbsp; 
     <span class="caret"> 
     </span> 
     </button> 
     <ul class="dropdown-menu" role="menu" style="max-height: 89px; overflow-y: auto; min-height: 0px;"> 
     <li rel="0" class="selected"> 
      <a tabindex="0" class=""> 
      <span class="text"> 
       Yes 
      </span> 
      <i class="icon-ok check-mark"></i> 
      </a> 
     </li> 
     <li rel="1" class=""> 
      <a tabindex="0" class=""> 
      <span class="text"> 
       No 
      </span> 
      <i class="icon-ok check-mark"></i> 
      </a> 
     </li> 
     </ul> 
    </div> 
    </div> 
</div> 

正如你不能简单的下拉列表中创建的,但而是一个复杂的按钮和下拉组合。我希望能够设置上述值的另一个输入字段然而,典型的方法,如jQuery的更改处理程序不工作,因为我不能使用id等来确定何时下拉更改。任何人都可以建议我如何实现这一目标。

我也在考虑将两个模型属性与一个下拉列表关联,以便根据一个选择将它们设置为相同的值,但不确定这是否可能。

回答

0

似乎您使用的是bootstrap-select,这是该库生成的代码,与HAML无关。

即使它产生了很多群众演员,你仍然可以使用更改事件为正常:

$(function() { 
    $('#campaign_trial').on('change', function() { 
    // do things 
    }); 
})