首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据不同的复选框状态执行操作?

如何根据不同的复选框状态执行操作?
EN

Stack Overflow用户
提问于 2016-04-26 12:26:58
回答 3查看 88关注 0票数 0

我想根据复选框状态调用一个JavaScript函数。

例如,如果只有复选框1是活动的,我想调用函数genPDF()

如果所有复选框都是活动的,那么一旦按下generate按钮,我就想调用函数gen4PDF(),等等。

据我所知,我可以做这样的事情:(而且它起作用) <a href="javascript:genPDF()"> DOWNLOAD PDF </a>

但我想要一个更“智能”的链接/按钮。我该怎么做呢?

我的代码骨架:

代码语言:javascript
复制
<!DOCTYPE>
<html>
<head>
    <title>System Overview Report</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <script type="text/javascript" src="jspdf.min.js"></script>
    <script type="text/javascript">


        function genPDF(){

        }

        function gen2PDF(){

        }

        function gen3PDF(){

        }

        function gen4PDF(){

        }

    </script>
</head>
<body>

    <input type="checkbox" name="basic">I want basic report<br>
    <input type="checkbox" name="network">I want network report<br>
    <input type="checkbox" name="suggestions">I want suggestions report<br>
    <input type="checkbox" name="complete">I want a complete report

    <a href="javascript:genPDF()"> GENERATE PDF REPORT </a>
</body>
</html>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-26 12:39:29

两个情况的代码第一个复选框和所有复选框:

代码语言:javascript
复制
function genPDF() {
  console.log('genPDF');
}

function gen2PDF() {
  console.log('gen2PDF');
}

function gen3PDF() {
  console.log('gen3PDF');
}

function gen4PDF() {
  console.log('gen4PDF');
}
function generate() {
  var basic = document.querySelector('[name="basic"]').checked;
  var network = document.querySelector('[name="network"]').checked;
  var suggestions = document.querySelector('[name="suggestions"]').checked;
  var complete = document.querySelector('[name="complete"]').checked;
  if (basic && !network && !suggestions && !complete) {
    genPDF();
  } else if (basic && network && suggestions && complete) {
    gen4PDF();
  }
}
代码语言:javascript
复制
<input type="checkbox" name="basic">I want basic report<br>
<input type="checkbox" name="network">I want network report<br>
<input type="checkbox" name="suggestions">I want suggestions report<br>
<input type="checkbox" name="complete">I want a complete report

<a href="javascript:generate()"> GENERATE PDF REPORT </a>

票数 0
EN

Stack Overflow用户

发布于 2016-04-26 12:32:34

代码语言:javascript
复制
 var checkBoxes=document.getElementsByClassName('pdf');
for(var i=0; i<4;i++){
    checkBoxes[i].onclick=function(){
        var checkedNum=0;
        for(var j=0; j<4;j++){
            if(checkBoxes[j].checked){
                checkedNum++
            }
        }

        switch (checkedNum){

            case 1:
                genPDF();
                break;
            case 2:
                gen2PDF();
                break;
            case 3:
                gen3PDF();
                break;
            case 4:
                gen4PDF();
                break
        }
    }
}
票数 0
EN

Stack Overflow用户

发布于 2016-04-26 12:38:31

您可以获得以下所有复选框状态:

代码语言:javascript
复制
var options = {}
$('input[type="checkbox"]').each(function() {
  options[this.name] = this.checked
})

您可以检查单个或多个选项来确定该做什么。

代码语言:javascript
复制
genPDF = function() {
  var options = {}
  $('input[type="checkbox"]').each(function() {
    options[this.name] = this.checked
  })
  
  if (options.basic && !options.network) {
    // etc
  } else if () {
    // etc
  }
}
代码语言:javascript
复制
<body>

    <input type="checkbox" name="basic">I want basic report<br>
    <input type="checkbox" name="network">I want network report<br>
    <input type="checkbox" name="suggestions">I want suggestions report<br>
    <input type="checkbox" name="complete">I want a complete report

    <a href="javascript:genPDF()"> GENERATE PDF REPORT </a>
</body>

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

https://stackoverflow.com/questions/36864942

复制
相关文章

相似问题

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