Web_Design 板


LINE

我想要做這個網頁的線上績分題 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 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.227.123
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1435790429.A.D44.html
1F:推 a73126: 看網頁code不要只看JS,HTML本身也要看...... 07/02 07:51
2F:→ a73126: 首先第一個問題,他的確是有勾+1分 07/02 07:51
3F:→ a73126: 再來,q_idx是會增加的,在所有if不成立的else內 07/02 07:52
4F:→ a73126: 善用搜尋先把變數在那些地方出現找出來 07/02 07:52
5F:→ a73126: 3的時候歸0有點trick...他到第三題才會把ans1 block顯示 07/02 07:57
6F:→ a73126: 也就是在此之前看不到分數,而他在第三題時統計分數迴圈 07/02 07:57
7F:→ a73126: 還是從第一題跑,所以要先把分數歸0 07/02 07:58
這邊我看不太懂耶,因為它作到第四題的時候才給1~3題的分數對嗎 那第三題統計分數為啥要從第一題跑呢@@ 我看它的for迴圈是跑 q3_1 q3_2 q3_3 q3_4 有沒checked 所以應該沒有算到前面幾題的分數?
8F:→ a73126: 最後score2和3是獨立的變數,請注意HTML內有個div id=ans2 07/02 08:00
9F:→ a73126: 這裡面紀錄了環境因素,身體功能兩個分數分別是score2和3 07/02 08:01
10F:→ a73126: 而影響這個的是第四和第五題 07/02 08:01
喔喔喔這邊我看懂了的樣子!!! ^^ 感激感謝感恩!!!
11F:→ a73126: 更正q_idx題號增加的位置,不是所有if不成立的else 07/02 08:02
12F:→ a73126: 是當不是第五題的else內 07/02 08:02
耶我找到了 這裡嗎 document.getElementById('q' + q_idx).style.display = 'none'; q_idx++; document.getElementById('q' + q_idx).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亂碼'); return false; } 那個迴圈為什麼要設 <=4 一共有五題說 謝謝幫助 受益良多~~~o(∩_∩)o ※ 編輯: Verdana (210.71.206.17), 07/02/2015 13:18:34 ※ 編輯: Verdana (210.71.206.17), 07/02/2015 13:25:48
13F:推 pptinmylife: 推。。。。 07/02 18:59
14F:→ a73126: 他的for迴圈是雙層阿,所以是q1_1~q3_4 07/04 04:27
15F:→ a73126: 另外你不懂得else是用來判斷有沒有勾選的,前四題一定要回 07/04 04:28
16F:→ a73126: 答,第五題可以不勾選,你可以自己玩玩看 07/04 04:28
17F:→ a73126: 所以題號只到4 <=4來源在這 07/04 04:28
18F:→ a73126: 另外alert內不是亂碼,你的瀏覽檔案編碼設錯了,這是UTF-8 07/04 04:29







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP