我想要做这个网页的线上绩分题
http://www.2h.com.tw/event/20150409/index.html?a=1538
它的js:http://www.2h.com.tw/event/20150409/js/script.js
可是我实在看不是很懂它在写什么
<div class="q_block" id="q1">
<h3>Part 1.您头皮的症状?</h3>
<div class="checkall">
<span style="visibility:hidden;">Part 1.</span>
<input type="checkbox" class="checkbox" name="q1" id="q1_1" />
掉发多或头皮油腻的问题<br />
<span style="visibility:hidden;">Part 1.</span>
<input type="checkbox" class="checkbox" name="q1" id="q1_2" />
长痘痘<br />
<span style="visibility:hidden;">Part 1.</span>
<input type="checkbox" class="checkbox" name="q1" id="q1_3" />
容易红肿、痒<br />
<span style="visibility:hidden;">Part 1.</span>
<input type="checkbox" class="checkbox" name="q1" id="q1_4" />
易有头皮屑</div>
<div class="q_button" onClick="next();">下 一 题</div>
=============================================================================
var q_idx = 1;
function next(){
if(q_idx == 1){
var score = 0;
for(var i = 1 ; i <= 1 ; i++){
for(var j = 1 ; j <= 2; j++){
if(document.getElementById('q' + i + '_' + j).checked) score++;
}
}
document.getElementById('score1').innerHTML = score;
document.getElementById('BannerAll').style.display = 'none';
document.getElementById('Address').style.display = 'none';
}
==============================================================================
上面这个应该是 next()跑到下一题的函式
跑到下一题后把有 BannerAll和Address id属性的tag消掉
这边的i和j应该为input的id q1_1~4 设的循环
每勾一个得一分吗?不太懂它分数是怎么算..
另外分数(变量score)会显示在上面具有id=scorel的tag
您的头皮总合分析 <span id="score1">0</span> 分
但是这个ans区域是到后来才显示,前面几题作答没有出来@_@
==============================================================================
if(q_idx == 3){
var score = 0;
for(var i = 1 ; i <= 3; i++){
for(var j = 1 ; j <= 4; j++){
if(document.getElementById('q' + i + '_' + j).checked) score++;
}
}
document.getElementById('score1').innerHTML = score;
document.getElementById('subtitle').style.display = 'none';
document.getElementById('main01').style.display = 'none';
document.getElementById('doctors').style.display = 'none';
document.getElementById('doctor_intro').style.display = 'none';
document.getElementById('ans1').style.display = 'block';
}
=============================================================================
q_idx这个变量在之前有设定值为1,我不太懂它是要干麻的
可是这边却说它变3的话要让分数归零
但之前q_idx就是1,它哪会变成3呢?
这边让蛮多id属性消失,变成id=ans1的跑出来
我看网页它是进行到第四题的时候id=ans1会跑出来
=============================================================================
if(q_idx == 5){
var score2 = 0;
for(var j = 1 ; j <= 4; j++){
if(document.getElementById('q4' + '_' + j).checked) score2++;
}
document.getElementById('score2').innerHTML = score2;
var score3 = 0;
for(var j = 1 ; j <= 4; j++){
if(document.getElementById('q5' + '_' + j).checked) score3++;
}
document.getElementById('score3').innerHTML = score3;
document.getElementById('q' + q_idx).style.display = 'none';
document.getElementById('ans1').style.display = 'none';
document.getElementById('ans2').style.display = 'block';
//document.getElementById('ans_spacing2').style.height= '75px';
document.getElementById('form_block').style.display = 'block';
}else{
var no_ans_flg = true;
for(var j = 1 ; j <= 4; j++){
if(document.getElementById('q' + q_idx + '_' + j).checked) {
no_ans_flg = false;
break;
}
}
if(no_ans_flg){
alert('xxxxxxxxxxxx
================================================================================
推测这边是进行到第四题 然后q_idx==5 还是不太懂是什么@@
我看了一下它的题目总共有五题
而上面为何又要多出score2 score3变量也不太懂
跟着它的 no_ans_flg 应该是指假如使用者没有作答吗?
后来会跳出来的页面是收集用户资料页 id="form_block"的div
也是上述程式中让它出现的
===============================================================================
对这段code真的是一知半解的 不知道该怎么看懂才好
新手入门 还请大家多多指点迷津 感激感激 m(__ __)m
另外不知道有没有其它比较好懂的程式码可以参考呢?
我google了一大堆 可是没有找到我要的这种
(checkbox 积分制)_
试过的google key word:
javascript checkbox multiple selection score
Multiple Choice Quiz Javascript
Multiple Choice Questionnaire
JAVASCRIPT Multiple Choice checkbox
javascript calculate total checkbox
How to Create a Scored Survey