我有6個輸入複選框,如果複選框被選中超過3,最後一個被取消選中。爲了更好的理解,請參考我以前的question。哪個解決了。未捕獲TypeError:無法讀取未定義的屬性'prop'
現在,我有另一個問題,現在3複選框已被Math.random
檢查。點擊任何未選中的複選框。我在控制檯中出錯。下面
Uncaught TypeError: Cannot read property 'prop' of undefined
代碼:
var random_checked = $("input[type=checkbox]").get().sort(function(){
return Math.round(Math.random())-0.6; //so we get the right +/- combo
}).slice(0,3);
$(random_checked).prop('checked', true);
var checked = [];
$('input[type=checkbox]').change(function(e) {
var num_checked = $("input[type=checkbox]:checked").length;
if (num_checked > 3) {
checked[checked.length - 1].prop('checked', false);
checked.pop();
}
if($.inArray($(this), checked) < 0){
checked.push($(this));
}
});
'檢查[checked.length - 1]'是未定義 –
爲了擺脫對檢查陣列的長度差錯檢驗的:如果(num_checked> 3 && checked.length> 0){---- HTTPS: //jsfiddle.net/usx8Lkc5/15/ – Zaki
它被定義。如果我只是刪除'match.random'或默認選擇,那麼它的工作原理。請參閱https://jsfiddle.net/usx8Lkc5/14/。 – locateganesh