/ / jQuery verstecken Label und Text, die von DB aufgerufen - jQuery, Ruby-on-Rails-3

jquery hide label und text, der von DB aus aufgerufen wurde - jquery, ruby-on-rails-3

Ich habe ein Problem mit dem Verstecken von Labels und Datenwird nach Auswahl aus der Datenbank angezeigt. Weil ich in meiner Tabelle eine Menge Spalten habe, wenn ich sie alle aufrufe, sind es viele Nulldaten. Um die Nulldaten zu vermeiden, möchte ich sie beim Anzeigen von Daten ausblenden.

show.html.erb

<p>
<b>Category:</b>
<%= @combine.master.category if @combine.master %>
</p>

<p id="type">
<b>Type:</b>
<%= @combine.type %>
</p>

<p id="project">
<b>Project name:</b>
<%= @combine.project_name %>
</p>

<p id="unit">
<b>Unit no:</b>
<%= @combine.unit_no %>
</p>

<p id="block">
<b>Block no:</b>
<%= @combine.block_no %>
</p>

<p>
<b>Road name:</b>
<%= @combine.road_name %>
</p>

<p>
<b>Level:</b>
<%= @combine.level %>
</p>

<p>
<b>Facing:</b>
<%= @combine.facing %>
</p>

<p>
<b id="tc">Size:</b>
<%= @combine.size %>
</p>

<p id="value">
<b>Value:</b>
<%= @combine.value %>
</p>

<p id="match">
<b>Match bank:</b>
<%= @combine.match_bank %>
</p>

<p>
<b>Asking:</b>
<%= @combine.asking %>
</p>

JQuery

$(document).ready(function(){
if ($("#combine_category_id").val() == 1){
$("#type").hide();
$("#block").show();
$("#level").show();
$("#tc").text("Size");
$("#value").hide();
$("#project").show();
$("#unit").hide();
$("#match").show();
}
else if ($("#combine_category_id").val() == 3){
$("#type").hide();
$("#block").hide();
$("#road").show();
$("#level").hide();
$("#facing").show();
$("#size").show();
$("#tc").text("Land size");
$("#value").hide();
$("#asking").show();
$("#project").hide();
$("#unit").show();
$("#match").show();
}
else if ($("#combine_category_id").val() == 2){
$("#type").show();
$("#block").show();
$("#road").show();
$("#level").show();
$("#facing").show();
$("#size").show();
$("#tc").text("Size");
$("#value").show();
$("#asking").show();
$("#project").hide();
$("#unit").hide();
$("#match").hide();
}
});

Hoffe, dass jemand mir hilft, dieses Problem zu lösen
Danke vielmals :)

Antworten:

1 für die Antwort № 1

Benötigen Sie dafür wirklich Javascript?

Was ist mit so etwas wie:

<%- unless @combine.type.blank? %>
<p>
<b>Type:</b>
<%= @combine.type %>
</p>
<%- end %>

Und so weiter für den Rest der Felder? Sie können auch eine Iteration schreiben, um zu vermeiden, dass sich wiederholender Code geschrieben wird:

<%- %w(type project unit block road_lavel name facing).each do |col| %>
<%- unless @combine.send(col).blank? %>
<p>
<b><%= col.humanize %>:</b>
<%= @combine.send(col) %>
</p>
<%- end %>
<%- end %>

oder setzen Sie diesen Code auch in einen Helfer