【问题标题】:Rails select_tag - jQuery/JavaScript hide/show on change eventRails select_tag - jQuery/JavaScript 隐藏/显示更改事件
【发布时间】:2015-12-03 10:01:43
【问题描述】:

我的助手中有以下内容:

def cancellation_policies_options_for_elite(room)
  options_for_select( [ [t("cancellation_policies.standard"), "standard"], [t("cancellation_policies.moderate"), "moderate"], [t("cancellation_policies.strict"), "strict"], [t("cancellation_policies.elite"), "elite"], [t("cancellation_policies.super_elite"), "super_elite"]] )
end

它指定了选择菜单中呈现的文本以及值(即标准、中等等)

在我看来,然后我打电话:

<%= select_tag('selected_cancellation_policy_id', cancellation_policies_options_for_elite(@room), id: 'select-policy', class: 'input-xxlarge') %>

在下面我有以下 div:

<div id="moderate" class="policies" style="display:none">
  Moderate policy
</div>

<div id="strict" class="policies" style="display:none">
  Strict policy
</div>

<div id="elite" class="policies" style="display:none">
  Elite policy
</div>

$("#select-policy").on('change', function() {
  alert("It's working!");
  $('.policies').hide();
  $("#" + $(this).val()).show();
}

我的项目中有 jQuery 和 jQuery UI,并且所有其他 jQuery 元素都在正常工作,它们都可以正确编译。但是,我完全没有从这个函数中得到任何响应,并且完全错过了原因。对此有何想法?

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    这应该可行:-

    $(document).ready(function(){
        $('.policies').hide();
    });
    

    然后在更改选择框时执行以下操作:-

    $(document).on('change', '#select-policy', function() {
        alert("It's working!");
        $('.policies').not("#" + $(this).val()).hide();
    });
    

    另外,在“精英政策”div 中,id 应该是“super_elite”而不是“elite”。因为在选择框中取消精英值是“super_elite”。这里缺少标准策略 div。

    【讨论】:

      猜你喜欢
      • 2013-09-05
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多