Jquery - hide/show 基于复选框值

Jquery - hide/show based on checkbox value

您好,我有以下表格:

               {{ Form::open(array('url' => 'profile', 'class' => 'form-horizontal')) }}
                        <div class="checkbox-custom fill checkbox-success mb5">
                            <fieldset class="arma2-mysql-question">
                                {{ Form::checkbox('arma2-mysql', '', $user->arma2_mysql, ['id' => 'arma2-mysql', 'onChange' => 'valueChanged()']) }}
                                {{ Form::label('arma2-mysql', 'Arma2 MySQL') }}
                            </fieldset>
                        </div>
                        <fieldset class="arma2-mysql-answer">
                            {{ Form::label('databaseip', 'Database IP') }}
                            {{ Form::text('databaseip', $user->arma2_mysql_ip, array('class' => 'form-control')) }}
                            {{ Form::label('database', 'Database') }}
                            {{ Form::text('database', $user->arma2_mysql_database, array('class' => 'form-control')) }}
                            {{ Form::label('databaseusername', 'Database Username') }}
                            {{ Form::text('databaseusername', $user->arma2_mysql_username, array('class' => 'form-control')) }}
                            {{ Form::label('databasepassword', 'Database Password') }}
                            {{ Form::password('databasepassword', array('class' => 'form-control')) }}
                        </fieldset>
                {{ Form::close() }}

和以下脚本:

function valueChanged() {
if ($('.arma2-mysql').is(':checked')) {
    $(".arma2-mysql-answer").hide();
} else {
    $(".arma2-mysql-answer").show();
} 
}

这在取消选中时工作正常,但再次选中时却不显示表单?

有什么想法吗?

尝试使用切换:

$('.arma2-mysql').change(function(){
$('.arma2-mysql-answer').toggle(!this.checked);
});

这是一个 class 选择器:

$('.arma2-mysql')

它看起来应该是一个基于您的 ID 选择器 html:

$('#arma2-mysql')

您也可以考虑使用 Jquery toggle 对 show/hide 的调用,这样您就可以完全省去 if 语句。

已修复,

问题是我在搜索 class .arma2-mysql 时我的元素从来没有这个 class,而是有一个 ID #arma2-mysql

像这样的? http://jsfiddle.net/swm53ran/100/

$(document).ready(function() {
    $('.checkbox').on('change', function() {
        $('.shownDiv').toggle();
    });
});

<input class="checkbox" type="checkbox" /> Show div
<br/><br/>
<div class="shownDiv" style="display:none;">Shown when checked</div>