2009-12-23 18 views
2

mootools 1.11如何確定div是否包含任何已選中的複選框?mootools 1.11 div包含已選中的複選框

嘗試各種使用$ $$ $ E $ ES的getElements和CSS選擇器,如果這個div不包含勾選框

var ticked = $(sId).getElements('[checked=checked]'); 
if($chk(ticked)){alert('yo');}else{unticked = true;} 
+0

歡迎來到StackOverflow!偉大的第一個問題 – Sampson

回答

0

The Documentation它只是不返回true變化:

$(sId).getElements("input:checked"); 
+0

不適用於1.11 :( –

-1

for 1.1

console.log($('id').getProperty('checked')); 
3

「checked」是一個動態分配的DOM屬性(這是一個布爾值),並且訪問屬性只會返回頁面加載時的值(或者您在使用setAttribute時放置的值)。
此外,作爲MooTools的1.11沒有複雜的選擇(屬性不能直接在$$過濾)和filterByAttribute功能只接受直接字符串比較,這是你唯一的(和最好的!)選項:

$(sId).getElements('input').filter(function(input) { 
    return /radio|checkbox/.test(input.getAttribute('type')) && input.checked; 
}) 

注意:爲了完整性,我添加了收音機,因此無論如何都必須運行過濾器循環來驗證已檢查的狀態。

如果要簡化程序,能夠重複使用的代碼(MooTools的方式),你也可以混合在檢查過濾器進入這樣的要件:

Element.extend({ 
    getCheckedInputs: function() { 
     return this.getElements('input').filter(function(input) { 
      return /radio|checkbox/.test(input.getAttribute('type')) && input.checked; 
     }); 
    } 
}); 

,然後選擇通話被縮減爲:

$(sID).getCheckedInputs();