我想根据复选框状态调用一个JavaScript函数。
例如,如果只有复选框1是活动的,我想调用函数genPDF()
如果所有复选框都是活动的,那么一旦按下generate按钮,我就想调用函数gen4PDF(),等等。
据我所知,我可以做这样的事情:(而且它起作用) <a href="javascript:genPDF()"> DOWNLOAD PDF </a>
但我想要一个更“智能”的链接/按钮。我该怎么做呢?
我的代码骨架:
<!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>发布于 2016-04-26 12:39:29
两个情况的代码第一个复选框和所有复选框:
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();
}
}<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>
发布于 2016-04-26 12:32:34
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
}
}
}发布于 2016-04-26 12:38:31
您可以获得以下所有复选框状态:
var options = {}
$('input[type="checkbox"]').each(function() {
options[this.name] = this.checked
})您可以检查单个或多个选项来确定该做什么。
genPDF = function() {
var options = {}
$('input[type="checkbox"]').each(function() {
options[this.name] = this.checked
})
if (options.basic && !options.network) {
// etc
} else if () {
// etc
}
}<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>
https://stackoverflow.com/questions/36864942
复制相似问题