【问题标题】:Looping javascript multiselect form elements循环javascript多选表单元素
【发布时间】:2013-01-09 12:57:28
【问题描述】:

我正在尝试循环多选复选框的值,以便我可以拆分数组并将它们作为一个字符串发布。在 PHP 中你可以说:

implode(",", $_POST['usage'])

获取逗号分隔的字符串。我如何在 javascript 中或使用 jquery 获得相同的源代码。

<input type="checkbox" name="usage[]" id="usage-ContentManagement" value="Content Management">
<input type="checkbox" name="usage[]" id="usage-Personal" value="Personal">
<input type="checkbox" name="usage[]" id="usage-Business" value="Business">
<input type="checkbox" name="usage[]" id="usage-SmallBusiness" value="Small Business">

我尝试过$('[name="usage[]"]').val(),但即使未选中复选框,它也会始终提供“内容管理”。

【问题讨论】:

    标签: javascript forms loops post


    【解决方案1】:

    遍历复选框并将它们的值存储在一个数组中。然后“内爆”这个数组。

    var arr = [];
    $('[name="usage[]"]:checked').each(function(){
        arr.push(this.value);
    });
    alert(arr.join(','));
    

    【讨论】:

    • @RobHruska 感谢您的提醒
    【解决方案2】:

    试试$.serializeArray()

    var values = $('[name="usage[]"]').serializeArray().map(function(kvp) {
        // kvp has the form {name:..., value:...}
        return kvp.value;
    }).join(',');
    

    优点是您可以将它用于任何表单元素:复选框、单选框、选择、文本输入……$.serializeArray 确保检索到适当的值。

    【讨论】:

    • 好主意,但超出了我的需要
    猜你喜欢
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    • 2016-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 2012-04-25
    相关资源
    最近更新 更多