2014-10-06 30 views
0

我有這段代碼。如果回答錯誤,它應該是一個簡單的測驗,只有一個問題,另一個彈出正確答案的窗口。簡單的jQuery測驗不執行

<html> 
    <head> 
    <script type="text/javascript" src="jquery.jsx"></script> 
    <script> 

    $(document).ready(function() { 
     $("#results").click(function() {     
     if (!$("input[@name=q1]:checked").val()) {    
      alert("You're not done yet!");   
     }   
     else {    
      var cat1name = "1";    
      var cat2name = "None";         
      var cat1 = ($("input[@name=q1]:checked").val() != "a"); 
      var cat2 = (!cat1); var categories = [];       
      if (cat1) { 
      categories.push(cat1name); 
      } 
      if (cat2) { 
      categories.push(cat2name); 
      } 
      var catStr = 'You answered the following questions incorrectly: ' + categories.join(', ') + '';      
      $("#categorylist").text(catStr);       
      $("#categorylist").show("slow");    
      if (cat1) { 
      $("#category1").show("slow"); 
      }    
      if (cat2) { 
      $("#category2").show("slow"); 
      } 
      $("#closing").show("slow"); 
     } 
     }); 
    }); 

    </script> 
    </head> 
    <body> 
    ... some CSS 
    ... the question look like this: 
    <p class="question">1. What is the answer to this question?</p>   
    <ul class="answers">    
     <input type="radio" name="q1" value="a" id="q1a"><label for="q1a">Answer 1</label><br/>   
     <input type="radio" name="q1" value="b" id="q1b"><label for="q1b">Answer 2</label><br/>    
     <input type="radio" name="q1" value="c" id="q1c"><label for="q1c">Answer 3</label><br/>    
     <input type="radio" name="q1" value="d" id="q1d"><label for="q1d">Answer 4</label><br/>  
    </ul>   
    <br/> 
    <div id="results">    
     Show me the answers!  
    </div> 
    </body> 
</html> 

該代碼是從這個網站http://www.hungrypiranha.org/make-a-website/html-quiz

我想調整代碼,只有一個問題。用10個samplequestions複製和粘貼代碼工作正常。但是,只要我縮短代碼,它不起作用。點擊answere按鈕不會做任何事情。我要監督什麼?

+0

的海洋如果格式化你的代碼(例如,在的jsfiddle),你會看到一個編輯器你最後有不匹配的大括號。從alert(catStr);開始。我已經刪除了答案,顯示一些觸發快樂的用戶在我輸入完之前將其忽略! – 2014-10-06 16:51:42

+0

嘗試更好地格式化您的代碼。 'if(cat2){$(「#category2」)。show(「slow」); }; {$(「#closing」)。show(「slow」); }; } });}); { alert(catStr); } });});'是一個絕對混亂 – scrappedcola 2014-10-06 16:55:50

+0

@TrueBlueAussie謝謝。我現在看到它。我想我盯着它看。從來沒有使用jQuery或JS,因此我不習慣語法。我想我從這裏相處!謝謝! – Maccaroni 2014-10-06 16:58:52

回答

-2

如果你格式化你的代碼(例如在一個JSFiddle中),你會看到你最後有不匹配的大括號。從alert(catStr);起。

$(document).ready(function() { 
    $("#results").click(function() { 

     if (!$("input[@name=q1]:checked").val() 

     ) { 
      alert("You're not done yet!"); 
     } else { 
      var cat1name = "1"; 
      var cat2name = "None"; 


      var cat1 = ($("input[@name=q1]:checked").val() != "a"); 

      var cat2 = (!cat1); 
      var categories = []; 

      if (cat1) { 
       categories.push(cat1name) 
      }; 
      if (cat2) { 
       categories.push(cat2name) 
      }; 


      var catStr = 'You answered the following questions incorrectly: ' + categories.join(', ') + ''; 
      $("#categorylist").text(catStr); 
      $("#categorylist").show("slow"); 

      if (cat1) { 
       $("#category1").show("slow"); 
      }; 
      if (cat2) { 
       $("#category2").show("slow"); 
      }; { 
       $("#closing").show("slow"); 
      }; 
     } 
    }); 
}); 

建議你使用提供代碼的好格式,因爲它是很容易迷失在大括號:)

+0

WTF ...等待答案解決之前解決! – 2014-10-06 16:53:12

+0

猜猜我需要另外5個negs否則它是值得的,同時刪除這個:)對於懦弱的祕密downvoters我說:P – 2014-10-06 17:12:30