0

我有一组复选框,当它们被选中时,我必须显示问题。这些问题永远都是一样的。这是在 PHP 中完成的

例子

复选框 1 复选框 1 复选框 1 复选框 1

如果复选框 1 和 3 被选中并且应该显示

复选框 1:从日期和日期到开始时间和结束时间
复选框 3:从日期和日期到开始时间和结束时间

如果复选框 4 被选中,则复选框 4 的另一个框应该出现相同的问题并且应该显示。

复选框 1:开始日期、结束日期、开始时间和结束时间
复选框 3:开始日期、结束日期、开始时间和结束时间
复选框 4:开始日期、结束日期、开始时间和结束时间

如果未选中复选框 3,则应取消复选框 3 的问题,并且应仅显示复选框 1 和 4 的问题
复选框 1:日期和日期以及开始时间和结束时间
复选框 4:日期和日期以及开始时间和结束时间

4

2 回答 2

1

你可以做这样的事情,它可能会帮助你......

HTML

<div id="panel">
  <input type="button" id="btnadd" name="btnadd" value="Add Question"/>
  <input type="button" id="btnreset" name="btnreset" value="Reset"/>
  <div id="quecheckbox">
  </div>
  <div id="quelist">
  </div>
</div>

jQuery:

function show_ques() {
        var i = $(this).attr('id').substr(-1);
        if ($(this).is(":checked")) {
            //get total count of question list 
            var nQue = $("#quelist").find("div[class^=que]").length;
            var isSet = false; //boolean to check if que is appended or not. 
            if (nQue > 0) {
                var nq = 0;
                $("#quelist").find("div[class^=que]:last").attr('class').substr(-1);
                $("#quelist").find("div[class^=que]").each(function() {
                    nq = $(this).attr('class').substr(-1);

                    if (nq > i && !isSet) {
                        $("#quelist .que" + nq).before("<div class='que" + i + "'>Question " + i + " is....?</div>");
                        isSet = true;
                    }
                });
            }
            if (!isSet) {
                $("#quelist").append("<div class='que" + i + "'>Question " + i + " is....?</div>");
            }
        } else {
            $("#quelist").find("div.que" + i).remove();
        }
 }
$(function() {
        $("#btnadd").click(function() {
            var i = $("#quecheckbox").find("input[type=checkbox]").length;
            if (i <= 0) i = 1;
            else i += 1;
            $("#quecheckbox").append("<div><input type='checkbox' id='que" + i + "' name='que" + i + "'/><label for='que" + i + "'>Question " + i + "</div>");

            $("#que" + i).bind('change', show_ques);

        });
        $("#btnreset").click(function() {
            $("#quecheckbox").html("");
            $("#quelist").html("");
        });
 });

我已经在http://codebins.com/bin/4ldqpa8上为上述问题完成了 bin

于 2012-07-19T08:13:56.497 回答
0

这是一种方法。为了将来参考,您可能应该自己尝试一些东西,然后询问为什么它可能不起作用。

http://jsfiddle.net/nickcaballero/U7JGW/

于 2012-07-19T04:06:04.723 回答