Internet Explorer不支持jquery来选择复选框值

时间:2012-06-01 14:24:58

标签: jquery ajax

获取选中的复选框值我使用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上运行它

3 个答案:

答案 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];
    });
}