如果选中,请显示其他复选框

时间:2015-03-03 16:34:39

标签: javascript jquery checkbox

我需要构建一个表单,所有复选框,一个接一个地显示。因此,如果选中一个复选框,则下面显示另一个仅在检查上述一个时。 表单将包含数百个复选框和多个选项。所以Ifelse陈述不合适。 每个复选框的数据将从xml文件中解析。 唯一似乎坚持这个的代码是

$('#chkCheckBox').on('click', function (){

    var nextID, body, nextEl;

    nextID = $(this).attr(target);
    nextEl = $('#' + nextID);

    if(nextEl.style.visibility == 'hidden') {
        nextEl.style.visibility = 'display'
    }

})

请稍等一点指导。希望我有道理,觉得我要绕圈子。

1 个答案:

答案 0 :(得分:-1)

nextEl是一个jquery对象,而不是DOM对象,因此没有style属性。使用jquery .show().is()

if(!nextEl.is(':visible')) {
     nextEl.show()
}

您似乎也为每个复选框使用相同的ID(chkCheckBox),不要这样做,而是使用一个类并将您的jquery事件附加到该。

$('.cb').on('click',function(){ 
    nextID = $(this).attr('target');
    nextEl = $('#' + nextID);

    if(!nextEl.is(':visible')) {
        nextEl.show();
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><input id="cb1" type="checkbox" class="cb" target="cb2"></div>
<div><input id="cb2" type="checkbox" class="cb" target="cb3" style="display:none"></div>
<div><input id="cb3" type="checkbox" class="cb" target="cb4" style="display:none"></div>