2010-06-17 228 views
3

我有一個複選框,我如何使用jquery獲取它的值?我有一個從搜索這個例子:獲取複選框的值?

var checked = $('input[type=checkbox]:checked').val() != undefined; 

,但我怎麼指定我該複選框興趣,我只想檢查與某個ID的複選框?

感謝

回答

6

即使容易

if($('#foo').is(':checked')){ 
    //code here 
} 
+0

不要在標識之前放置標籤名稱'input'。它減慢了選擇器。 – user113716 2010-06-17 19:21:18

+1

編輯,感謝帕特里克! – 2010-06-21 14:57:23

2
var checked = $('input#foo:checked'); 

if (checked.length && checked.val().length) { 
    // do something with checked 
} 
+0

只是一個說明。如果我沒有記錯,將標籤名稱放在ID之前實際上會減慢選擇器的速度。 – user113716 2010-06-17 19:08:48

+0

我不認爲任何人都在關心如此微不足道的表現。沒有人會真正注意到。 – 2010-06-17 19:38:35

+0

所有應有的尊重,廢話。性能對選擇器來說總是很重要。當您放置標籤名稱之前,您將否定使用ID的好處。如果它如此微不足道,那麼爲什麼要使用ID呢?這是一個不好的做法,不應該延續下去。 – user113716 2010-06-17 20:09:17

1

你的價值是什麼意思?您可以判斷是否使用checked屬性檢查了一個框。如果選中,則提交的表單在value屬性中發送給服務器的值。

var mybox = $('input#myid'); 
if (mybox.length > 0 && mybox[0].checked) { 
    // do something, or use mybox[0].value 
} else { 
} 
+0

'checked'屬性在jQuery對象中不存在,所以除非你執行'[0] .checked' – 2010-06-17 18:57:12

+0

哦,這就是我的意思,只是檢查與否!謝謝 – user246114 2010-06-17 18:57:47

+0

良好的捕獲,meder;爲我的測試服務。那個更好嗎? – 2010-06-17 18:58:32

1

比方說,您的ID被#myid,則:

var checked = $('input[type="checkbox"]#myid').attr('checked'); 
if (checked) { 
    //box is checked 
} else { 

} 
2

您可以使用jQuery的is():checked選擇沿:

var $theCheckbox = $('#theID'); 

if($theCheckbox.is(':checked')) { 
    var checked = $theCheckbox.val(); 
} 

http://jsfiddle.net/BYagp/1/