我有一個附有複選框的商店名稱列表。 我有另一個屬於這些商店的分類列表。 當我點擊商店時,它只顯示具有相同價值的分類法。當沒有選中複選框時顯示一條消息
我用這個腳本來做到這一點:
$(document).ready(function() {
$(".store_checkbox").change(function() {
$('div[store_id=' + this.value + ']').toggle(this.checked);
}).change();
});
現在我想如果沒有框都被選中
怎麼可能做到這一點在我的分類顯示一條消息?
我想:
$(document).ready(function() {
if($('.store_checkbox').find('input[type=checkbox]:checked').length > 0) {
$("#hidden_taxon_message").show(); // any one is checked
} else {
$("#hidden_taxon_message").hide(); // none is checked
}
});
但不管它只是隱藏了消息,如果有選中或取消選中複選框
我也試過這樣:
$(function() {
if($('.store_checkbox').not(':checked')){
alert("no check boxes");
}
});
更新腳本一起
$(document).ready(function() {
$(".store_checkbox").change(function() {
$('div[store_id=' + this.value + ']').toggle(this.checked);
}).change();
if(!$('.store_checkbox').is(':checked')){
$("#hidden_taxon_message").show(); // any one is checked
} else {
$("#hidden_taxon_message").hide(); // none is checked
}
});
最新
$(document).ready(function() {
$(".store_checkbox").change(function() {
$('div[store_id=' + this.value + ']').toggle(this.checked);
}).change();
checkIfChecked();
});
$('.store_checkbox').on('change', function() {
checkIfChecked();
});
function checkIfChecked() {
if ($('.store_checkbox:checked').length == 0) {
$("#hidden_taxon_message").show(); // none are checked
} else {
$("#hidden_taxon_message").hide(); // something is selected
}
}
這是我的js文件的樣子。該消息似乎並沒有隱藏。 我把它放在正確的位置?
標記
<h3>Stores Offered In</h3>
<ul class="multi-column-checkbox">
<% for store in Store.all %>
<li><%= check_box_tag "idea[store_ids][]", store.id,
@idea.stores.include?(store), :class => "store_checkbox" %> <%= store.name %></li>
<% end %>
</ul>
<br />
<hr />
<h3>Taxonomies Offered In</h3>
<% for store in Store.all %>
<% if store.has_taxonomies? %>
<div store_id='<%= store.id %>'>
<h4><%= store.name %></h4>
<ul class="multi-column-checkbox">
<% for taxonomy in store.taxonomies %>
<li><%= check_box_tag "idea[taxonomy_ids][]",
taxonomy.id, @idea.taxonomies.include?(taxonomy) %> <%= taxonomy.name %></li>
<% end %>
</ul>
</div>
<% end %>
<% end %>
<div id="hidden_taxon_message">
no checkboxes are selected
</div>
您問題,你的邏輯看起來倒退了。如果你想在選擇0時顯示一條消息,你會不會== 0而不是> 0,或者切換show()/ hide()? – Gregg
它看起來像只測試是否顯示一次消息(文檔準備就緒後)。看起來你會希望每次複選框被更改時執行該測試,對吧?可能還包括你的HTML? – showdev
我的更新問題是否消除了文檔準備好? – anmaree