【发布时间】:2016-08-19 17:22:12
【问题描述】:
我有一个多项选择测验,有 5 个可能的点和一个二进制,是或否答案。
我对 jsPDF 和 html2canvas 感到很沮丧,所以我做了一个相当低效的解决方法,我希望它对我有用。
我为每个证书保存了一个单独的 pdf,并且可以通过 <a href="PDF.pdf" download> 访问它们。我知道这只是在大多数浏览器上打开 PDF,但这实际上或多或少是我想要的。
我认为我的困难在于我的 Jquery。 不管你得到什么分数,它默认切换第一个链接并给你证书,上面写着你得一分,然后对第二个问题说是。
这是 HTML。
<div class="answers">
<input type="radio" name="q1" id="q1a"><label for="q1a">option 1</label><br/><br/>
<input type="radio" name="q1" id="q1b"><label for="q1b">option 2</label><br/><br/>
<div class="answers">
<input type="radio" name="q2" id="q2a"><label for="q2a">option 1</label><br/><br/>
<input type="radio" name="q2" id="q2b"><label for="q2b">option 2</label><br/><br/>
<div class="answers">
<input type="radio" name="q3" id="q3a"><label for="q3a">option 1</label><br/><br/>
<input type="radio" name="q3" id="q3b"><label for="q3b">option 2</label><br/><br/>
<div class="answers">
<input type="radio" name="q4" id="q4a"><label for="q4a">option 1</label><br/><br/>
<input type="radio" name="q4" id="q4b"><label for="q4b">option 2</label><br/><br/>
<div class="answers">
<input type="radio" name="q5" id="q5a"><label for="q5a">option 1</label><br/><br/>
<input type="radio" name="q5" id="q5b"><label for="q5b">option 2</label><br/><br/>
<div class="answers">
<input type="radio" name="qx" id="qxa"><label for="qxa">Praise the sun!</label><br/><br/>
<input type="radio" name="qx" id="qxb"><label for="qxb">Nope.</label><br/><br/>
<p id="endButton"></p>
<button type="button" onclick="getScore();">Finish</button>
<br/>
<div class="cert" id="cert0n">
<a href="Cert 0n.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert0y">
<a href="Cert 0y.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert1n">
<a href="Cert 1n.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert1y">
<a href="Cert 1y.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert2n">
<a href="Cert 2n.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert2y">
<a href="Cert 2y.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert3n">
<a href="Cert 3n.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert3y">
<a href="Cert 3y.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert4n">
<a href="Cert 4n.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert4y">
<a href="Cert 4y.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert5n">
<a href="Cert 5n.pdf">Download my certificate!</a>
</div>
<div class="cert" id="cert5y">
<a href="Cert 5y.pdf">Download my certificate!</a>
</div>
“cert”类设置为display: none,以便切换允许它显示。
这里是 Javascript:
var totscore = 0;
var noanswer = 0;
var scores1 = [0, 1];
var scores2 = [0, 1];
var scores3 = [0, 1];
var scores4 = [0, 1];
var scores5 = [0, 1];
var praiseTheSun = 0
if(document.getElementById("q1a").checked){
totscore += scores1[0];
} else if(document.getElementById("q1b").checked){
totscore += scores1[1];
} else noAnswer = 1;
if(document.getElementById("q2a").checked){
totscore += scores1[0];
} else if(document.getElementById("q2b").checked){
totscore += scores1[1];
} else noAnswer = 1;
if(document.getElementById("q3a").checked){
totscore += scores1[0];
} else if(document.getElementById("q3b").checked){
totscore += scores1[1];
} else noAnswer = 1;
if(document.getElementById("q4a").checked){
totscore += scores1[0];
} else if(document.getElementById("q4b").checked){
totscore += scores1[1];
} else noAnswer = 1;
if(document.getElementById("q5a").checked){
totscore += scores1[0];
} else if(document.getElementById("q5b").checked){
totscore += scores1[1];
} else noAnswer = 1;
if(document.getElementById("qxa").checked){
praiseTheSun == 1
} else if(document.getElementById("qxb").checked){
praiseTheSun == 0
}else noAnswer = 1;
if(noAnswer == 1){
alert("At least one question was left unanswered above. Please ensure that all answers are complete.");
} else if(noAnswer == 0){
alert("Your score is " + totscore + ".");
if((totscore = 0) && (praiseTheSun = 1)){
$("#cert0y").toggle();
}else if((totscore = 0) && (praiseTheSun = 0)){
$("#cert0n").toggle();
}else if((totscore = 1) && (praiseTheSun = 1)){
$("#cert1y").toggle();
}else if((totscore = 1) && (praiseTheSun = 0)){
$("#cert1n").toggle();
}else if((totscore = 2) && (praiseTheSun = 1)){
$("#cert2y").toggle();
}else if((totscore = 2) && (praiseTheSun = 0)){
$("#cert2n").toggle();
}else if((totscore = 3) && (praiseTheSun = 1)){
$("#cert3y").toggle();
}else if((totscore = 3) && (praiseTheSun = 0)){
$("#cert3n").toggle();
}else if((totscore = 4) && (praiseTheSun = 1)){
$("#cert4y").toggle();
}else if((totscore = 4) && (praiseTheSun = 0)){
$("#cert4n").toggle();
}else if((totscore = 5) && (praiseTheSun = 1)){
$("#cert5y").toggle();
}else if((totscore = 5) && (praiseTheSun = 0)){
$("#cert5n").toggle();
}
我无法理解为什么,无论我得到什么分数,它都默认为 cert1y。
【问题讨论】:
-
最后我看到你所有的
if语句都使用=而不是==- 你正在分配值,这会搞砸一切。 -
if((totscore = 0) && (praiseTheSun = 1))确保在比较时使用双倍或三倍=标记。您正在为totscore和praiseTheSun分配值,而不是比较它们。 -
啊,谢谢。我总是搞砸我的逻辑。我想这是一个持续练习的问题。
标签: javascript jquery html pdf