2013-10-25 17 views
7

獲取ID你好,這是一個jquery問題:類名的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-1」,即使我選擇與「選擇2」編號的複選框..我猜測,因爲他們都在同一類與「.select」類第一個是發現顯示在警報中..我如何獲得使用其類名檢查的特定ID?謝謝!

+2

你應該使用單選按鈕。如果其中的一個選項來自多個單選按鈕。如果它有多個選項=複選框。 – Dementic

+0

更新了我的答案,添加了一個演示。 – Cristy

回答

30

您一次只檢查一個複選框嗎?

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

或者,如果你有多個複選框一次檢查:

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

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

2

你是不是捕捉選中的複選框,你只問「是有一個檢查?「。使用這種方式

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

還銘記保持,如果只有一個可以選擇,最好將其更改爲radio

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

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

    if(elem.length > 0){ 
     alert(elem.attr('id')); 
    } 
}); 
3

獲取ID。

2
$("#submit").click(function(){ 
      if($(".select").is(':checked')){ 
       var $this=$(".select").is(':checked'); 
       alert($this.attr('id')); 
      } 
}); 
+4

$(this')指向$('#submit')',所以這是不正確的。 – Cristy

+0

更新了...... –

2

有多個元素。您需要檢查有同一類別的所有複選框

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

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

}); 
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()); 
}); 
-1

因爲你還沒有迭代都具有一流的「選擇」的元素。它總是進入第一個元素並打印結果。放置一個循環來迭代所有具有「select」類的元素。

0

嘗試這樣的事情,你不需要重複

 $(document).ready(function() { 
      $("#submit").click(function(){ 
        if($(".select").is(':checked')){ 
         alert($(".select:checked").attr('id')); 
        } 
      }); 
     });