我想在複選框被選中或未選中時運行一個函數。但是,我有大約70個複選框。他們都在一個分區內。我該如何編寫一個能夠對其中任何一個進行更改的命令?在多個複選框中的一個上運行javascript函數
2
A
回答
2
事件冒起來,所以你可以附加一個onchange處理程序到div並使用e.target
來獲取更改的複選框。下面是一個簡單的例子:
HTML:
<div id="checkbox-container">
<input type="checkbox" name="one" />
<input type="checkbox" name="two" />
<input type="checkbox" name="three" />
<input type="checkbox" name="pizza" />
</div>
的Javascript:
document.getElementById('checkbox-container').onchange = function(e){
alert(e.target.name);
}
1
基於ASCII時的回答,您可以使用事件代表團。但是,請注意,更改事件在所有瀏覽器中都不會冒泡,並且您還必須支持IE事件模型,因此請使用單擊事件並過濾掉不需要的元素(或添加備用響應):
<div id="checkbox-container">
<input type="checkbox" name="one">
<input type="checkbox" name="two">
<input type="checkbox" name="three">
<input type="checkbox" name="pizza">
</div>
<script type="text/javascript">
(function() {
var container = document.getElementById('checkbox-container');
if (container) {
container.onclick = function(evt) {
evt = evt || window.event;
var el = evt.target || evt.srcElement;
if (el && el.nodeType == 1 && el.type == 'checkbox') {
alert(el.name + ' is ' + (el.checked? '':'not') + ' checked');
}
}
}
}())
</script>
請注意,該腳本必須位於容器元素下方。就在結束標籤正好之前。
+0
+1我在編輯我的答案,但你打我寫一個更好的跨瀏覽器答案。 – Paulpro
相關問題
- 1. 在多個選定的複選框上運行javascript
- 2. 在複選框值上運行函數?
- 3. 運行多個函數javascript
- 4. 在JavaScript中的多個複選框值
- 5. javascript - 複選框onclick函數在另一個函數
- 6. Javascript - 如果選中多個複選框,請選中複選框
- 7. 選中一個複選框以選擇多個複選框
- 8. 當在JavaScript中選擇一個複選框創建複選框
- 9. Javascript函數中一個複選框的值
- 10. 並行化一個函數以在多個文件上運行
- 11. javascript在另一個函數下運行一個函數
- 12. 在javascript中運行一個接一個的函數
- 13. 在JTable中刪除一個選中的複選框行(單個和多個)
- 14. 從DataGridView中的多行復選框中只選擇一個複選框
- 15. 多個複選框驗證在javascript
- 16. 如何在多個複選框上調用javascript函數點擊php?
- 17. 在多個複選框中保持複選框狀態一致
- 18. 選中一個複選框,選中另一個複選框
- 19. 如何定義一個函數在Emacs上運行多個shell?
- 20. 按順序運行多個Javascript函數?
- 21. 一VS多個複選框
- 22. 得到一個複選框的值屬性從JavaScript函數
- 23. Primefaces在Javascript函數中多選複選框bean值
- 24. 根據複選框運行函數
- 25. 在多個元素上運行JavaScript函數..?
- 26. 在複選框上計算多個值的第一個值
- 27. 當選中一個複選框時,多個複選框會被選中?
- 28. JavaScript複選框onclick函數
- 29. PHP - 當一個複選框被選中時發送一個請求在數據庫上運行查詢
- 30. 在javascript中複製一個函數
更改事件可能不會在所有瀏覽器中冒泡,更好地使用click事件。以上在支持IE事件模型的瀏覽器中也會失敗,'e'將會是未定義的。 – RobG
這不僅僅是IE瀏覽器,直到最近,改變事件在大多數瀏覽器中都沒有起泡。 HTML5已經改變了很多這樣的事情,你需要爲超過12個月的瀏覽器編碼。 – RobG