JavaScript 限制核取方塊選中數目
有時候需要限制核取方塊可以被選中的個數,比如對個人介紹的一些選項中,會有選中個數的限制。
下面就通過一個例項介紹一下如何實現此功能,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> function checboxNum(name, num) { var checboxs = document.getElementsByName(name); var a = 0; for (var index = 0; index < checboxs.length; index++) { if (checboxs[index].checked) { a = a + 1; } } if (a == num) { for (var index = 0; index < checboxs.length; index++) { if (!checboxs[index].checked) { checboxs[index].disabled = 'disabled'; } } } else { for (var index = 0; index < checboxs.length; index++) checboxs[index].removeAttribute('disabled'); } } window.onload = function() { var box = document.getElementById("box"); box.onclick = function() { checboxNum("ck", 3); } } </script> </head> <body > <div id="box"> <label><input type="checkbox" name="ck"/></label>螞蟻部落一 <label><input type="checkbox" name="ck"/></label>螞蟻部落二 <label><input type="checkbox" name="ck"/></label>螞蟻部落三 <label><input type="checkbox" name="ck"/></label>螞蟻部落四 <label><input type="checkbox" name="ck"/></label>螞蟻部落五 <p></p> <label><input type="checkbox" name="ck"/></label>螞蟻部落六 <label><input type="checkbox" name="ck"/></label>螞蟻部落七 <label><input type="checkbox" name="ck"/></label>螞蟻部落八 <label><input type="checkbox" name="ck"/></label>螞蟻部落九 <label><input type="checkbox" name="ck"/></label>螞蟻部落十 </div> </body> </html>
規定能夠選中的核取方塊的數量,達到數量之後,其他核取方塊將會被設定為不可用狀態。
一.實現原理:
原理非常簡單,為checkbox的父元素註冊click事件處理函式,當點選核取方塊的時候觸發click事件,然後通過事件冒泡現象傳遞到父元素,這樣就會執行事件處理函式,此函式會遍歷所有的核取方塊,每選中一個,變數a就會+1,如果數量到達規定的數量,除了被選中的核取方塊之外,其他的核取方塊都會被設定為不可用。
二.程式碼註釋:
(1).function checboxNum(name,num){},div的onclick事件處理函式,name是核取方塊的name屬性值,num是可以選中的數量。
(2).var checboxs=document.getElementsByName(name),獲取核取方塊物件集合。
(3). var a=0,宣告一個變數a,並賦初值0.
(4).for(var index=0;index<checboxs.length;index++),遍歷所有的核取方塊。
(5).if(checboxs.checked),如果核取方塊被選中。
(6).a=a+1,a的值+1。
(7).if(a==num),如果a的值達到規定的可選數量。
(8).for(var index=0;index<checboxs.length;index++) ,遍歷所有的核取方塊。
(9).if(!checboxs.checked),如果核取方塊沒有被選中。
(10).checboxs.disabled='disabled',將沒有被選中的設定為不可用。
(11).for(var index=0;index<checboxs.length;index++) ,遍歷核取方塊。
(12).checboxs.removeAttribute('disabled'),將核取方塊設定為可用。
(13).window.onload=function(){},文件內容完全載入完畢再去執行函式中的程式碼。
(14).var box=document.getElementById("box"),獲取div物件。
(15).box.onclick=function(),為div物件註冊事件處理函式。
三.相關閱讀:
(1).getElementsByName()參閱document.getElementsByName()一章節。
(2).for參閱JavaScript for 迴圈語句一章節。
(3).removeAttribute()參閱JavaScript removeAttribute()一章節。
相關文章
- jQuery Validate限定核取方塊選中的數目jQuery
- JavaScript獲取選中checkbox核取方塊的選中值JavaScript
- JavaScript 獲取選中checkbox核取方塊的值JavaScript
- JavaScript 判斷checkbox核取方塊是否選中JavaScript
- JavaScript 核取方塊全選和全不選JavaScript
- JavaScript刪除核取方塊選中的表格行JavaScript
- JavaScript核取方塊全選和全不選詳解JavaScript
- 點選文字選中或取消選中checkbox核取方塊
- jquery table下的核取方塊選中、取消jQuery
- checkbox 核取方塊全選程式碼
- 單選按鈕和核取方塊
- Yii2 中 checkboxlist 核取方塊 預設選中
- 對於核取方塊的快捷選擇
- jQuery核取方塊checkbox的全選和反選jQuery
- 小程式核取方塊全選和全部取消
- 使用jQuery做核取方塊的全選與取消jQuery
- 基礎元件:單選開關和核取方塊元件
- HTML input checkbox核取方塊HTML
- CSS 美化checkbox核取方塊CSS
- HTML input checkbox 核取方塊HTML
- 一個數值儲存核取方塊的值
- ElementUi Table核取方塊回顯UI
- vxe-table 多選、使用表格多選資料、核取方塊多選
- 直播系統原始碼,單選按鈕和核取方塊原始碼
- css3美化checkbox核取方塊CSSS3
- layui獲取頁面checkbox核取方塊值UI
- checkBox核取方塊,獲得選中那一行所有列的資料
- CSS3 checkbox核取方塊和radio單選框美化效果CSSS3
- odoo wizard介面顯示帶核取方塊列表及勾選資料獲取Odoo
- 在java和Scenebuilder隱藏核取方塊JavaUI
- PyQT5 實現下拉核取方塊QT
- 草稿 核取方塊繫結資料 1204
- Flutter 基礎控制元件篇-->單選框(Switch)、核取方塊(Checkbox)Flutter控制元件
- vxe-table 實現核取方塊多選透過滑鼠拖動選擇功能
- CSS模擬美化checkbox核取方塊詳解CSS
- [開發教程]第18講:Bootstrap核取方塊boot
- Android 學習筆記之單選按鈕(RadioButton)和核取方塊(CheckBox)Android筆記
- 【新特性速遞】樹表格核取方塊與級聯選擇(TreeCheckBox,TreeCascadeCheck)