首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MDL表检索数据校验值

MDL表检索数据校验值
EN

Stack Overflow用户
提问于 2017-02-19 18:39:28
回答 2查看 1.4K关注 0票数 4

我使用的是MDL lib的表。https://getmdl.io/components/index.html#tables-section­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

但是没有关于如何检索校验值的文档。

我只找到了这个解决方案,但这一点帮助都没有:

代码语言:javascript
复制
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赋值呢?

如何检索单个校验值?

如何处理“全选”事件,获取所有行的数据?

EN

回答 2

Stack Overflow用户

发布于 2017-02-19 18:49:40

看看https://github.com/google/material-design-lite/issues/1210,其中根据MDL的版本提供了几种解决方案(变通方法)。

票数 0
EN

Stack Overflow用户

发布于 2017-02-19 20:59:06

我正在遵循这个(变通方法)

window.onload上,我将onclick属性添加到所有复选框,以调用函数getCheckValue(this),此函数遍历dom以获取tr中每个tdinnerHTML

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42326223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档