このコードは機能していますが、Jqueryスクリプトでこれを行うためのより良い方法が必要です。
これが私のラジオボタンです
<%= f.radio_button :losstype, "Cash", :id => 'lc' %>Cash
<%= f.radio_button :losstype, "Asset",:id => 'rb' %>Asset
<%= f.radio_button :losstype, "Supplies", :id => 'ab' %>Supplies
そして、ここに私の隠されたビットがあります。
<% if @assetloss.losstype == "Asset" %>
<div id="asset_list" style="display: show;">
<% else %>
<div id="asset_list" style="display: none;">
<% end >
A drop down list to be shown
</div>
そしてJqueryの部分
$j(document).ready(function(){
$j("input[id='lc']").change(function() {
$j("#asset_list").hide();
} );
$j("input[id='rb']").change(function() {
$j("#asset_list").show("slide");
} );
$j("input[id='ab']").change(function() {
$j("#asset_list").hide();
} );
} );
チェックされたラジオボタンでレンダリングされたマークアップ
<input checked="checked" id="rb" name="asset_loss[loss_type]" type="radio" value="Asset"/>
それは機能しますが、これを行うためのより良い方法があると確信しているので、私は推測するリファクタリングの助けを求めます。
よろしくお願いします
Ed1。これはJqueryの質問であり、「input [id ='rb']」が(dbから)チェックされているかどうかをチェックする必要があることに気付きました。$ j( "#asset_list")。show(); 変更リスナーを必要とせずに