获取选中的复选框值我使用j查询在Chrome,Firefox下运行正常,但在IE中失败。出于某些原因,我为每个复选框提供相同的ID,但使用不同的名称。例如
<input id="LIV" name="<?php echo $value['desc']; ?>" type="checkbox" checked value="<?php echo $value['id']; ?>" /> <?php echo $value['desc']; ?>
<a class="i-btn-2" onclick="addparameters('LIV');">Add</a>
点击添加按钮后,我调用一个函数addparameter,如下所示
function addparameters(id)
{
var tempstr='#'+id+':checked';
$(tempstr).each(function(i)
{
val[i] = $('#'+id).val();
val1[i]=($(this).attr('name'));
str12=str12+val[i];
});
}
在IE浏览器中,如果我选择了多个复选框,它只给我第一个复选框值。但是在chrome中它给了我所有选中的复选框值 我的代码有什么问题。请帮我在IE上运行它
答案 0 :(得分:3)
请务必提供所有复选框 DIFFERENT ID。
如果他们都拥有相同的ID,他们将不正确选择...
现在所有的复选框都有id="LIV"
,请使用类似公共类的内容来选择所有复选框。
答案 1 :(得分:1)
您正在选择ID而不是类。只有一个元素可以具有相同的ID,但多个元素可以共享类。所以将id更改为一个类,它将开始工作。 e.g。
var tempstr='.'+yourClass+':checked';
答案 2 :(得分:1)
正如Neal所说 - 每个复选框必须具有不同的ID - 即使HTML中的每个元素都必须具有不同的ID - ID应该是它 - IDENTIFICATOR和IDETIFICATOR唯一地描述了一个具体项目。
而不是ID您可以使用类或相同的输入名称:
function addparameters(name) {
var selector = $('input[name="'+name+'"]:checked');
$(selector).each(function(i){
val[i] = $(this).val();
val1[i] = name;
str12 = str12+val[i];
});
}
或
function addparameters(class) {
var selector = $('input.'+class+':checked');
$(selector).each(function(i){
val[i] = $(this).val();
val1[i] = $(this).attr('name');
str12 = str12+val[i];
});
}