我使用的是MDL lib的表。https://getmdl.io/components/index.html#tables-section
但是没有关于如何检索校验值的文档。
我只找到了这个解决方案,但这一点帮助都没有:
var checkboxes = document.getElementById('team-table-id')
.querySelector('tbody').querySelectorAll('.mdl-checkbox__input');
for (var i = 0; i < checkboxes.length; i++) {
checkboxes[i].addEventListener('change', function() {
console.log(this)
// returns <input type="checkbox" class="mdl-checkbox__input">
// how can I assign and retrieve value to/from this input?
});
}
我怎么能给表行的checkbox/input赋值呢?
如何检索单个校验值?
如何处理“全选”事件,获取所有行的数据?
发布于 2017-02-19 18:49:40
看看https://github.com/google/material-design-lite/issues/1210,其中根据MDL的版本提供了几种解决方案(变通方法)。
发布于 2017-02-19 20:59:06
我正在遵循这个(变通方法)
在window.onload
上,我将onclick
属性添加到所有复选框,以调用函数getCheckValue(this)
,此函数遍历dom
以获取tr
中每个td
的innerHTML
window.onload=function(){
var checkAll=document.getElementsByClassName('mdl-checkbox__input')
for(var i=0;i<checkAll.length;i++){
checkAll[i].setAttribute('onclick','getCheckValue(this)')
}
}
function getCheckValue(obj){
if(obj.checked){
/*th is checked in thead*/
if(obj.parentElement.parentElement.parentElement.parentElement.nodeName=='THEAD'){
var trs=obj.parentElement.parentElement.parentElement.parentElement.nextElementSibling.children
for(var i=0;i<trs.length;i++){
var tds=trs[i].getElementsByTagName('td')
for(var j=1;j<tds.length;j++){
console.log(tds[j].innerHTML)
}
}
}
else{
/*td inside tbody is checked*/
var tds=obj.parentElement.parentElement.parentElement.getElementsByTagName('td')
for(var i=1;i<tds.length;i++){
console.log(tds[i].innerHTML)
}
}
}else{
/* uncheck th checkbox of thead*/
if(obj.parentElement.parentElement.parentElement.parentElement.nodeName!='THEAD'){
obj.parentElement.parentElement.parentElement.parentElement.previousElementSibling.firstElementChild.firstElementChild.firstElementChild.classList.remove('is-checked')
obj.parentElement.parentElement.parentElement.parentElement.previousElementSibling.firstElementChild.firstElementChild.firstElementChild.firstElementChild.checked=false
}
}
}
用于演示的Plunker link
https://stackoverflow.com/questions/42326223
复制相似问题