2017-10-09 30 views
2

我有6個複選框基於從數據庫中的值選中/取消,5號複選框選中,獲得國家,我用下面的代碼片段:更新複選框每次檢查或取消選中

var allCheckboxes = $(':input[name="cc_checkbox"]').map(function() { 
    return this.value; 
}).get(); 

當我console.log(allCheckboxes)我得到["1", "1", "1", "1", "0", "1"]這是正確的。

但是,當我選中/取消選中任何複選框和console.log(allCheckboxes)的,我仍然得到["1", "1", "1", "1", "0", "1"]

這是一個正常的行爲或者是有一些其他的語法,我需要使用?

+0

你能分享你的HTML嗎?你的複選框中'value'屬性的值是多少? –

回答

2

問題是因爲複選框的value始終存在。它不會根據元素是否被選中而改變。

爲了解決這個問題,你可以把元素的checked財產的陣列,而不是:

var allCheckboxes = $(':input[name="cc_checkbox"]').map(function() { 
    return this.checked; 
}).get(); 

鑑於您的OP的例子,這將讓你的陣列輸出:

[true, true, true, true, false, true] 
相關問題