14

你好这是一个jquery问题:

假设我有这个:

<input type="checkbox" class="select" id ="select-1">

<input type="checkbox" class="select" id ="select-2">

我想获取当我单击提交按钮时已选中的复选框的 ID(注意:您只能选择 1),并且我在这里有此按钮单击事件:

$("#submit").click(function(){

          if($(".select").is(':checked')){

              alert($(".select").attr('id'));
          }
});

即使我选择带有“select-2” id 的复选框,它也会始终提醒“select-1”。我猜是因为它们都在同一个类中,第一个带有“.select”类的类被发现显示在警报中.. 我如何获得通过使用他们的类名检查的特定 id?谢谢你!

4

8 回答 8

44

您一次只检查一个复选框吗?

alert( $(".select:checked").attr('id') );

或者,如果您一次选中了多个复选框:

$(".select:checked").each(function(){
   alert($(this).attr('id'));
});

演示:http: //jsfiddle.net/UTux2/

于 2013-10-25T06:35:24.113 回答
3

使用这种方式获取ID

$(".select:checked").attr('id');

另外请记住,如果只能选择一个,最好将其更改为radio.

于 2013-10-25T06:36:47.470 回答
2

您没有捕获选中的复选框,您只是在问“是否选中了一个?”。

$("#submit").click(function(){

    var elem = $(".select:checked");

    if(elem.length > 0){
        alert(elem.attr('id'));
    }
});
于 2013-10-25T06:36:27.120 回答
2
$("#submit").click(function(){  
          if($(".select").is(':checked')){
               var $this=$(".select").is(':checked');
               alert($this.attr('id'));
          }
});
于 2013-10-25T06:37:12.843 回答
2

有多种元素。您需要检查所有具有相同类的复选框

$("#submit").click(function(){

          $(".select:checked").each(function(){
           alert($(this).attr('id'));
   });

});
于 2013-10-25T06:37:48.130 回答
2

您应该使用单选按钮而不是复选框来允许从众多选项中选择一个。

<input type="radio" name="select" value="select-1">
<input type="radio" name="select" value="select-2">

那么事情会变得非常简单:

$("#submit").click(function(){

    alert($('[name="select"]:checked').val());
});
于 2013-10-25T06:41:26.917 回答
0

尝试这样的事情,你不需要迭代

        $(document).ready(function () {
            $("#submit").click(function(){
                  if($(".select").is(':checked')){
                      alert($(".select:checked").attr('id'));
                  }
            });
        });
于 2013-10-25T06:46:27.307 回答
-1

因为您还没有迭代所有具有“选择”类的元素。它总是转到第一个元素并打印结果。放置一个循环来迭代所有具有“选择”类的元素。

于 2013-10-25T06:41:57.110 回答