0

基本上我想创建一个表单,在提交时会根据清单选择创建一个新表单。

例如,在查看我的代码时,如果我检查了 Section 1, Test Item 2 并提交了它。在提交时,它会拉出一个新页面(或加载到当前页面),步骤越深入。我正在尝试制作一个可用于多个文档的模板,因此仅将其添加到那里对我来说是行不通的。

(1) 如何使第 1、2 和 3 部分在检查之前一无所有?不必单击复选框两次以使其消失,我宁愿让它不存在并在选中时出现。

(2) 我希望 All checklist 检查所有框,但不显示或隐藏它们(我知道这不是为此编码的,但我不知道如何)

这是我的代码:http: //jsfiddle.net/kNsW9/2/

<script>
$(document).ready(function(){
    $('#all').click(function(){
        if ($('#all').is(':checked'))
            $(this).nextAll('li').show();
        else
            $(this).nextAll('li').hide();
    });

    $('#1').click(function(){
        if ($('#1').is(':checked'))
            $(this).nextUntil('ol').show();
        else
            $(this).nextUntil('ol').hide();
    });

    $('#2').click(function(){
        if ($('#2').is(':checked'))
            $(this).nextUntil('ol').show();
        else
            $(this).nextUntil('ol').hide();
    });

    $('#3').click(function(){
        if ($('#3').is(':checked'))
            $(this).nextUntil('ol').show();
        else
            $(this).nextUntil('ol').hide();
    });
});
</script>
<form>
Table of Contents<br />
Please Select What to Test:<br />
<input type="checkbox" id="all" onclick="check(this.id)"></input>All
<ol><input type="checkbox" id="1"></input>Section 1
<li><input type="checkbox"></input>Test Item 1</li>
<li><input type="checkbox"></input>Test Item 2</li>
</ol>
<ol><input type="checkbox" id="2"></input>Section 2
<li><input type="checkbox"></input>Test Item 1</li>
<li><input type="checkbox"></input>Test Item 2</li>
<li><input type="checkbox"></input>Test Item 3</li>
<li><input type="checkbox"></input>Test Item 4</li>
<li><input type="checkbox"></input>Test Item 5</li>
<li><input type="checkbox"></input>Test Item 6</li>
</ol>
<ol><input type="checkbox" id="3"></input>Section 3
<li><input type="checkbox"></input>Test Item 1</li>
<li><input type="checkbox"></input>Test Item 2</li>
<li><input type="checkbox"></input>Test Item 3</li>
<li><input type="checkbox"></input>Test Item 4</li>
<li><input type="checkbox"></input>Test Item 5</li>
</ol>
<!--<input type="submit" value="Submit">-->
</form>
4

2 回答 2

1

我在你的 jsfiddle 中做了一些改变,不确定这是否是你要找的。让我知道是这样还是我误解了这个问题:

演示:http: //jsfiddle.net/kNsW9/4/

你在正确的方向只需要做一些小的改变

$('#1').nextUntil('ol').hide()
$('#2').nextUntil('ol').hide();
$('#3').nextUntil('ol').hide();

$('#all').click(function(){
    $('#1').click();
    $('#2').click();
    $('#3').click();
});
于 2013-04-03T20:27:20.103 回答
1

让我知道这对你有什么作用......

http://jsfiddle.net/kNsW9/9/

*我用css更新了控制LI的可见性而不是jquery检查所有将检查所有子项目,取消选中所有将取消选中所有子项目

*我假设如果你选中所有,然后取消选中所有应该取消选中的子项,对吗?

$('#all').click(function(){
    var checked = $(this).prop('checked');
    $('#section1,#section2,#section3').each(function() {
        $(this).find('input:checkbox').prop('checked', checked);
    });
});
于 2013-04-03T20:29:15.333 回答