延續多年前的一篇本站熱門文章「jQuery: 判斷 checkbox 是否被選取」,近期突然被問到三次關於,如果是一群 checkbox group 需要判斷是否至少有勾選一個,該怎麼判斷。想說教了三次,還是認真一點直接分享在可以被搜尋引擎找到的地方分享囉 :)
從邏輯來判斷,既然工程師已經選擇了使用 jQuery 為基礎,且通常 HTML 與後端程式語言的 <form> 資料傳遞不會是問題,接下來的問題通常卡在大家都比較少閱讀的「jQuery selector」。
首先我們準備一群 checkbox 的 HTML。在這邊用 PHP 做搭配範例,幫我們產生一群 name 都是 something[] 的 checkbox group,使用其他語言也不是問題。
<?php foreach ($SOME_LIST as $list_item_name) { ?> <input name="something[]" type="checkbox" value="<?php echo $list_item_name ?>" /> <?php } ?>
接著練習 jQuery 的基本用法:「選取某個東西」然後「對被選到的某個東西做某個動作」。所以我們有多種「選取」的方法,在此是其中一種選法「[name='']」以及「:checked」。然後我們選擇做這個動作「.length」:
<script> alert ( $("input[name='something[]']:checked").length ); </script>
剩下的工作就是將這個數字來做排列組合或是丟去做判斷條件囉,例如:
<script> if ( $("input[name='something[]']:checked").length == 0 ) { // do something } </script>
希望這個分享對各位手邊的工作有些許幫助 :) 要學的東西真的很多,一起加油!希望有時間整理一些使用 stackoverflow 的技巧。
0 Comments:
Post a Comment