获取复选框选中的值

时间:2017-10-08 01:15:35

标签: javascript html

如何为页面重定向单独检索复选框值。我希望能够在用户选中2个复选框后重定向用户;然后自动重定向,将其值作为有效负载。

<script>
$("input:checkbox").on('click', function () {
    var $box = $(this);
    if ($box.is(":checked")) {
        var group = "input:checkbox[name='" + $box.attr("name") + "']";
        $(group).prop("checked", false);

        $box.prop("checked", true);
        var1 = $("input:checkbox[name='fooby[1][]']")
        var2 = $("input:checkbox[name='fooby[2][]']")

        if (($(var1).is(":checked")) & ($(var2).is(":checked"))) {
            window.location.href = url + 'var1=' + var1.value + '?var2=' + var2.value
        }
    } else {
        $box.prop("checked", false);
    }
});
</script>

我正在尝试使用两个有效负载重定向用户 - 我也不能将var2与var1混合;它需要保持不变,它们的值应该相应地排序。 当我这样做时。它只给我一个值,这是最后一个检查值。如何获得2个不同的值?

这是var1例如

<center><input  style="display:block"type="checkbox" id="group1" class="radio" value="SINGLE_EXAM" name="fooby[1][]" />

这是例如

的var2
<center><input type="checkbox" class="radio" value="Long Beach" id="group4" name="fooby[2][]" />    <label for="group4">dTLA</label>

我想要获得两个不同的价值观;我尝试将所有内容添加到数组中;它没有用,因为如果我这样做,var1可能是var2。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

首先,您应该使用代码段(人们可以重现问题)展示一个有效的示例,以便更清楚地了解您要实现的目标。

现在,您遇到的主要问题是因为您使用的是var1.valuevar2.value。但那些变量是JQ对象。所以你应该使用.val()

然后,您应该只选择:checkedvar1中的var2个复选框,它们会为您提供所选选项的正确值。

顺便说一句,您使用的是url + 'var1=' + var1.value + '?var2=' + var2.value

您的意思是使用url + '?var1=' + var1.value + '&var2=' + var2.value

由于您没有展示一个工作示例,我可以自由地假设一些HTML,如下所示。

&#13;
&#13;
$("input:checkbox").on('click', function () {
    var url = 'http://example.com/';
    var $box = $(this);
    if ($box.is(":checked")) {
        var group = "input:checkbox[name='" + $box.attr("name") + "']";
        $(group).prop("checked", false);

        $box.prop("checked", true);
        var1 = $("input:checkbox[name='fooby[1][]']:checked")
        var2 = $("input:checkbox[name='fooby[2][]']:checked")
        
        if (($(var1).is(":checked")) & ($(var2).is(":checked"))) {
          console.log(url + 'var1=' + var1.val() + '?var2=' + var2.val());
          // window.location.href = url + 'var1=' + var1.value + '?var2=' + var2.value
        }
    } else {
        $box.prop("checked", false);
    }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="checkbox" id="group1" class="radio" value="SINGLE_EXAM" name="fooby[1][]" />    <label for="group1">Single Exam</label>
<input type="checkbox" id="group2" class="radio" value="MULTIPLE_EXAM" name="fooby[1][]" />    <label for="group2">Multiple Exams</label>
<input type="checkbox" id="group3" class="radio" value="NO_EXAM" name="fooby[1][]" />    <label for="group3">No Exam</label>
<br>
<input type="checkbox" class="radio" value="Long Beach" id="group4" name="fooby[2][]" />    <label for="group4">dTLA</label>
<input type="checkbox" class="radio" value="Medium Beach" id="group5" name="fooby[2][]" />    <label for="group5">eTLA</label>
<input type="checkbox" class="radio" value="Short Beach" id="group6" name="fooby[2][]" />    <label for="group6">fTLA</label>
&#13;
&#13;
&#13;