【问题标题】:Push checked checkboxes to array and get the values from array to build a query string将选中的复选框推送到数组并从数组中获取值以构建查询字符串
【发布时间】:2013-09-06 21:11:27
【问题描述】:

我有一堆复选框,用户可以一次选中一个或多个。我需要将所有选中的复选框抓取到一个数组中,然后从数组中抓取每个值并将每个值推送到查询字符串变量。

<div class="Cat" style="width: 155px; float: left; margin-left:15px;">
    <p>Location</p>
    <div><input class="LocChk" type="checkbox" value="United States"/>&nbsp;United States<br/></div>
    <div><input class="LocChk" type="checkbox" value="Australia"/>&nbsp;Australia<br/></div>
    <div><input class="LocChk" type="checkbox" value="Canada"/>&nbsp;Canada<br/></div>
    <div><input class="LocChk" type="checkbox" value="China"/>&nbsp; China<br/></div>
</div>

因此,我不想在以下查询变量中对选定的值进行硬编码,而是从数组中传递检查的值。假设一个用户检查了加拿大和中国,我需要将这两个值存储在一个数组中,然后在下面的查询变量中,按顺序访问它们。有人可以告诉我在 jQuery 中执行此操作的有效方法吗?

var queryText = "<View>"+
                    "<Query>"+
                        "<Where>"+
                            "<In>"+
                                "<FieldRef Name='HSCountry' />"+
                                    "<Values>"+
                                        "<Value Type='Choice'>Canada</Value>"+
                                        "<Value Type='Choice'>China</Value>"+
                                    "</Values>"+                                                
                                "</In>"+
                        "</Where>"+
                    "</Query>"+
                    "<ViewFields><FieldRef Name='Title' /></ViewFields>"+
                "</View>";                          

【问题讨论】:

    标签: javascript jquery arrays string checkbox


    【解决方案1】:

    哦,这就是我喜欢 .map() 功能的原因:

    var checkboxArray = $(".LocChk:checked").map(function() {
        return this.value;
    }).get();
    

    【讨论】:

    • 天哪。太贴心了!我以前从未听说过 .map() 函数!
    • @tymeJV 如何从数组中检索值以便在 queryText 变量中使用它们?
    • 你可以遍历它,所以checkboxArray[0]是第一个值。或者您可以使用 for 循环迭代并构造您的字符串。
    【解决方案2】:
    var values = [];
    $.each('input[type=checkbox]:checked',function(){
        values.push($(this).val());
    }); 
    

    首先,values 是一个数组,用于保存所有复选框的值。然后,您使用 jQuery $.each 函数循环检查每个已选中的输入框。对于每一个被检查的值,该值都被添加到 values 数组中。然后,您可以稍后出于任何目的循环浏览它们。

    【讨论】:

    • 也许只是一点详细说明这里发生的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多