根据选择的下拉列表值隐藏链接

时间:2011-10-12 08:55:29

标签: javascript jquery css locale aspdotnetstorefront

我需要编写一些jquery,它将读取下拉列表中的当前值,然后隐藏页面上的特定链接。

下拉列表是一个区域设置选择器。因此,当我选择“英语”时,我希望链接被隐藏,但是当选择法语时,链接必须保留。

你能告诉我怎么做吗?我想学习这个。感谢

2 个答案:

答案 0 :(得分:1)

这个怎么样:

function handleLang() {
    if ($('#select').val() == 'en') {
        $('#link').hide();
    } else {
        $('#link').show();
    }
}
$(function() {
    // hide/show on load
    handleLang();

    // hide/show when the language is changed (useful if the page doesn't reload)
    $('#select').change(handleLang);
});

答案 1 :(得分:0)

根据为此问题提供的第一个答案以及评论中第一个答案的作者提供的更多提示,这里是适用于我的代码的最终(和紧凑)完整版本(我也删除了并且样式化因为不再需要)。这是此测试应用程序的index.html.erb中提供的主页。

<h2 id='main_header'>Showing/hiding link based on dropdown selection</h2>

<table>
  <thead>
    <th>Action</th>
    <th>Skip assessment</th>
    <th>Reason for skipping</th>
  </thead>
  <tbody>
    <tr>
      <td>
        <%= link_to 'Start asseement', url_for(controller: :home, action: :start_assessment), id: 'start_assessment' %>
      </td>
      <td>
        <%= select_tag "skip_option", options_for_select([ "Yes", "No" ], "No"), id: "skip_option", onchange: "reason_picker()" %>
      </td>
      <td>
        <%= text_field_tag "reason_for_skipping", nil, size: 50, placeholder: 'Enter reason here...' %>
      </td>
    </tr>
  </tbody>
</table>

<script type="text/javascript">
  $(document).ready (
    window.reason_picker = function () {
      var selected = document.getElementById("skip_option").selectedIndex;
      if (selected == 0) {
        $("#reason_for_skipping").show();
        $("#start_assessment").hide();
      }
      else {
        $("#reason_for_skipping").hide();
        $("#start_assessment").show();
      }
    }
  );
</script>

开始评估页面非常基本,只是start_assessment.html.erb文件中包含的主页的标题和反向链接:

<h1>Assessment</h1>

<%= link_to 'Back', :back %>

我有任何帮助,这里是控制器home_controller.rb文件:

class HomeController < ApplicationController
  def index
  end

  def start_assessment
  end
end

路由route.rb文件是:

Rails.application.routes.draw do
  root controller: 'home', action: :index
  get 'start_assessment' => 'home#start_assessment'
end