複数のチェックボックスがあります。それらのいずれかをチェックすると、divが表示されます。それらをチェックしないままにするとdivが非表示になります。ニック(http://stackoverflow.com/questions/4337378/toggle-div-based-on-checkbox-value)のおかげで、私はdivをトグルするために複数のチェックボックスが必要になることを除けば、ほぼ動作します。複数のチェックボックスに基づいてdivの表示を切り替える
HTML:
<div id="somediv">
<input type="checkbox" class="form-checkbox" value="a" name="a">
<input type="checkbox" class="form-checkbox" value="b" name="b">
<input type="checkbox" class="form-checkbox" value="c" name="c">
<input type="checkbox" class="form-checkbox" value="d" name="d">
</div>
<div id="tog">tog content</div>
のjQuery:
var tog = $("#tog").hide();
$('#somediv .form-checkbox').change(function() {
if ($(tog).css('display') == 'none') {
tog.show();
}
});
もう1:
var tog = $("#tog").hide();
$('#somediv .form-checkbox').change(function() {
$(tog).toggle(this.checked);
}).change();
私は何をしないのですか? 問題の1つ(すべてではない)のチェックボックスをオフにするとdivが非表示になります。 何もチェックされていない場合にのみ必要です。デフォルトでは隠されています。 これがチェックされている場合は、表示しておきます。トグルは表示されません。
どのようなヒントも非常に高く評価されます。 ありがとう
+1。チェックされたセレクタを使用して長さをチェックするのは非常に洗練されたソリューションです。各チェックボックスをループし、 'checked'プロパティをテストすることも別の方法ですが、これより多くのコードが必要です。 – maxedison
パーフェクト。美しいコードをありがとう。 – swan