0

使用 aj 查询获取选定的复选框值,该查询在 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>

单击添加按钮时,我调用一个函数添加参数,如下所示

               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上运行它

4

3 回答 3

3

确保为所有复选框提供不同的 id。

如果他们都有相同的id,他们将无法正确选择......

现在你所有的复选框都有id="LIV", 使用类似公共类的东西来选择它们。

于 2012-06-01T14:27:22.490 回答
1

您选择的是 ID 而不是类。只有一个元素可以具有相同的 ID,但多个元素可以共享类。因此,将 id 更改为一个类,它将开始工作。例如

var tempstr='.'+yourClass+':checked';
于 2012-06-01T14:29:39.743 回答
1

正如尼尔所说 - 每个复选框必须有不同的 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];
    });
}
于 2012-06-01T14:31:00.930 回答