2010-08-10 158 views
1

現在我得到的價值,如果我選擇複選框(ID被選中), ,但如何獲得值時,我未選定(ID是未選中)?jquery,取消選擇複選框

例如我推1,我得到價值1.當我取消選擇1,我得到價值1. 我希望你明白我的問題。

<script> 
$(document).ready(function() 
{ 
    $("input[type=checkbox]").change(function(event){ 
     $("#result").html("&id=" + this.value); 
    }); 
}); 
</script> 
</head>                 
<body>                 
<input type="checkbox" name="checkbox_pref" value = "1"/>1 
<input type="checkbox" name="checkbox_pref" value = "2"/>2 
<input type="checkbox" name="checkbox_pref" value = "3"/>3 
<div id="result">result ...</div> 

回答

1

我簡單地創建與所有的檢查值的數組。

然後我可以使用join來創建字符串以備後用。

$(document).ready(function() { 
    var $inputs = $("input[type=checkbox]"); 
    $inputs.change(function(event){ 
     var list = []; 
     $inputs.filter(':checked').each(function() { 
      list.push($(this).val()); 
     }); 
     $("#result").html("&id=" + list.join(",")); // Produces: &id = 1,2,3 (If they were all checked) 
    }); 
}); 

+1

..我只是嘗試這樣做,也沒有工作。 http://jsfiddle.net/8nhYq/。你確定這有效嗎? – Hristo 2010-08-10 20:18:03

+0

謝謝,我修復了語法錯誤,請嘗試:http://jsfiddle.net/8nhYq/1/,用有效的JS更新後 – 2010-08-10 21:10:33

0

我相信如果你使用this.attr('checked')你應該得到一個布爾值。

,或者你可以做

this.is( ':檢查')