如何在jQuery中为变量分配可变数量的复选框值?

时间:2014-09-24 11:47:02

标签: jquery arrays loops checkbox

我有一个HTML表单,其中包含许多复选框,这些复选框都具有相同的类=" shared"。我使用以下内容将可检查复选框的数量限制为3,一次按预期工作:

$(document).on('change', '.shared', function() {
    var countShared = $('.shared:checked').length;
    if(countShared > 3 && $(this).is(':checked')) {
        alert("You can only select up to 3 departments to share with.");
        $(this).prop('checked',false);
    }
});

现在我的问题如下:

我有3个变量,shared1,shared2和shared3,并希望将上面选中的复选框中的值分配给这些变量。我正在寻找将第一个选中复选框的值分配给变量shared1的内容,将第二个选中复选框的值分配给shared2,将第三个选中复选框的值分配给shared3

通常我会尝试使用.each循环来完成这样的事情,然后去上课.shared,但我不知道如何应用这个,因为也可能少于3个或没有选中复选框我不知道哪些是。

我怎么能意识到这一点?

2 个答案:

答案 0 :(得分:1)

最初将每个变量设置为 false

然后,如果没有选中框,则表示您已完成。如果有,只需将shared1设置为true即可。如果有两个,则将shared1和shared2设置为true,最后,如果有三个复选框,则将所有三个设置为true。

shared1 = false;
shared2 = false;
shared3 = false;
var checkedBoxes = $('.shared:checked');
if (checkedBoxes[0]) shared1 = true;
if (checkedBoxes[1]) shared2 = true;
if (checkedBoxes[2]) shared3 = true;

答案 1 :(得分:1)

如果父项中包含所有复选框元素,则可以尝试以下操作 -

$(YourSelector).index()

这将返回复选框的索引号,您可以分配给相应的变量。

只需检查索引为1的位置并分配给shared1变量,依此类推。