Javascript:函数bind.click&对于每个复选框

Javascript : function bind.click & for each checkbox

本文关键字:于每个 复选框 amp 函数 bind click Javascript      更新时间:2023-09-26

我有一些组合框,每个组合框都有值,并按类分组&ID

<input type="checkbox" value="A" class="box-1" id="ID_1">
<input type="checkbox" value="B" class="box-1" id="ID_1">
<input type="checkbox" value="C" class="box-2" id="ID_2"> 
<input type="checkbox" value="D" class="box-2" id="ID_2">

若用户点击按钮,则选中每个框,若选中,则存储值&变量的ID。

编辑:

JS:

$('#button').bind('click', function() {
var box = '';
var p =0;
var count = document.getElementById("count").value; // for count total class checkbox 
for(d=1; d <= count; d++){
    p = 0;
    $('.box-' + d).each(function(item){ // each box-1/2/3
        if(this.checked){
            if(p == 0)
            {
                var name = this.value.replace(/'s/g, '');
                box += '&' + ($(this).attr('id')) + '=' + '&' + encodeURIComponent(name).toLowerCase());
                p+=1;
                alert(box);
            }
            else
            {
                var href = ($(this).attr('id')) + '=';
                var name_2 = this.value.replace(/'s/g, '');
                box += href + '&' + encodeURIComponent(name_2).toLowerCase());
                p+=1;
            }       
        }
    });
}
alert(box);
//location = url;
});

示例案例:checked组合框为A & D我期望的是&ID_1=&AID_2=&D(这是不同的ID),如果相同的ID=&ID_1=&A&D

当我尝试警报时,它什么都不显示(''),但当我尝试在if(p==0)内部显示警报(框)时,它有结果1&ID_1=A0&ID_2=&D

尝试在此处检查

 change your code into like this
    $('#button').bind('click', function() {
    var boxval="";
    //&ID_1=&AID_2=&D
    $("input[class^='box-']").each(function(){
    if($(this).is(':checked'))
    {
    boxval += $(this).attr('id') +'=&' + $(this).attr('value');
    }
    });
    if(boxval !='')
    alert(boxval)
    else
    alert("nothing will selected");
    });


 below is the working fiddle

https://jsfiddle.net/17hxsa9r/

您已经在代码中声明了两次box

var box = '';

$('.box-' + d).each(function(box){ // each box-1/2/3

each()内部声明的box隐藏了外部box,因此其值不会更改。

你需要用不同的名字命名其中一个。