ドロップダウンリストの現在の値を読み取り、ページ上の特定のリンクを非表示にするjqueryを作成する必要があります。
ドロップダウン リストはロケール セレクタです。したがって、「英語」を選択するとリンクを非表示にしたいのですが、フランス語を選択するとリンクを残す必要があります。
どうすればこれができるか教えてもらえますか? これを学びたい。ありがとう
ドロップダウンリストの現在の値を読み取り、ページ上の特定のリンクを非表示にするjqueryを作成する必要があります。
ドロップダウン リストはロケール セレクタです。したがって、「英語」を選択するとリンクを非表示にしたいのですが、フランス語を選択するとリンクを残す必要があります。
どうすればこれができるか教えてもらえますか? これを学びたい。ありがとう
これはどう:
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);
});
この質問に対して提供された最初の回答と、コメントの最初の回答の作成者によって提供されたその他のヒントに基づいて、これが私のために働いたコードの最終的な(そしてコンパクトな)完全なバージョンです(もはや必要)。これは、このテスト アプリケーションの 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