我有一些组合框,每个组合框都有价值,并且分组和组合。 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">
如果用户单击按钮,则选中每个框,如果选中此选项,则存储值&amp; 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
当我尝试提醒它时,它什么都不显示(&#39;&#39;),但当我在里面尝试提示(框)时,如果(p == 0)它有结果{{ 1}}和1&ID_1=A
。
尝试检查此here
答案 0 :(得分:2)
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
答案 1 :(得分:0)
您已在代码中声明var box = '';
两次
$('.box-' + d).each(function(box){ // each box-1/2/3
和
box
在each()
内声明的box
会隐藏外部connect()
,因此其值不会更改。
您需要以不同方式命名其中一个。