0

select_tag 内 (同じページ内) で変化する値に応じて、そのうちの 1 つ (div) が表示されます。

select_tag 要素から選択した ID を取得しています

$('#some_id').on('change',function(){
    //$(this).val()
})

しかし、オブジェクトをフェッチしてそのプロパティの1つをチェックする方法がわからないだけで、divを表示する必要があるかどうかがわかりますか?.

そのIDをサーバーに送信することを考えました...そこで必要なことは何でもしてから、ビューに戻ってこのようなことを試してください

<% if some_condition %>
 <div>
  ...
 </div>
<% end %>

これは(もちろん)そうではないかもしれません。

4

1 に答える 1

0

サーバーからいくつかのデータを取得した後にそれを行う方法はonChange機能しselectます。このアプローチを検討することもできます。

ただし、div を事前設定し、選択フィールドで選択したオプションに関連付けることができるクラスまたはその他の属性を追加できれば、サーバー呼び出しを完全に防ぐことができます。

<div class="opt1Val selectOptsDiv"> </div>
<div class="opt2Val selectOptsDiv"> </div>
<div class="opt3Val selectOptsDiv"> </div>

これらのすべての div を最初は で非表示にしcss display: none;ます。

$('#some_id').on('change',function(){
  var selectedOptionVal = $(this).find("option:selected).val();
  $("." + selectedOptionVal).show();
})

しかし、div の表示と非表示が選択したオプション値のみに依存し、サーバー側で他の処理を行う必要がない場合、これを行うことができると思います。

于 2012-05-20T11:14:08.527 に答える