交换来选择框中,一旦复选框被选中(Swap to select box once checkbox

2019-10-29 16:05发布

我有这些复选框集。 它们对应于哪个人都可以工作的日子。 该系统将被用来建立一个“工作日程”。 然而,当老板检查一个复选框(让人们对某一天的工作),它应更改为一个选择框,这样老板可以告诉人们将工作。

该复选框得到他们这样的名字: {UserID}_[] 复选框的值对应于当天在每周(周一 - > 0,周二 - > 1,周三 - > 2等)。 选择框以这种方式取得: {UserID}_select_[]

我尝试使用以下类型的jQuery脚本来得到这个工作:

<script>
    var userList = <?php echo json_encode($userIdList); ?>;

    function swapInput(obj) {
        for (var i in obj) {
            $(document).ready(function() {
                $("input[name='" + obj[i] + "_[]']").change(function() {
                    if ($(this).prop('checked')) {
                        $(this).hide();
                        $('input[name="' + obj[i] + '_select_['$(this).val()']"]').show();
                    }
                }
            }
        }
    }

    swapInput(userList);

</script>

不过,我很新的jQuery的,所以我可能需要一些帮助那里。 我从数据库中检索PHP数组来得到所有的用户ID,其中我们有一个可用性。 这一个被转换成一个jquery变量。 我尝试遍历,要获得每一个ID,使一行代码隐藏复选框。 虽然..它不工作..一如既往...

当我的var_dump的userIdList PHP变量,这是我的结果:

array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(4) }

这意味着用户ID是1,2和4。但谁可以帮我用jQuery的一部分吗?

Answer 1:

连接一个超级简单的jQuery代码演示显示/切换复选框时隐藏选择。 请注意,我用id ,而不是name 。 很少有其他事情要考虑:

  • 更改.change.click

  • 移动$(document).ready(function()以外的for循环,它应该只运行一次。

 $("#check").click(function(e) { if ($(this).prop("checked")) { $(this).hide(); $("#select").show(); } }) 
 #select { display: none; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <script src="https://code.jquery.com/jquery-3.1.0.js"></script> <input type="checkbox" id="check"> <select id="select"> <option>Testing</option> </select> </body> </html> 



文章来源: Swap to select box once checkbox is checked