2010-10-31 62 views
0

我想創建一個jquery調查問卷,但我的小jQuery知識不能幫助我。jquery調查問卷

我直到現在如下http://valogiannis.com/stackoverflow/quest.html

當您單擊問題有兩個問題打開一個彈出。

我想要以下內容:當用戶點擊兩個答案中的一個時,腳本檢查他的答案。數組CheckFirstAnswer負責「告訴」第一個答案是錯誤還是正確的,0表示錯誤,1表示正確。如果用戶點擊正確的答案,那麼我想顯示下一個問題,其數組的答案來自數組Question,FirstAnswer,SecondAnswer,否則相應的結論與i值成比例。

我將不勝感激任何幫助。

感謝

回答

2

[Working demo]

問經理

// question number 
var currentQ = -1; 

function showNewQuestion(el) { 
    currentQ++; // increment question number 
    $('.messagepop').html(Question[currentQ] + '<br />' + 
          '<a href="#" class="first">' 
          + FirstAnswer[currentQ] + '</a><br />' + 
          '<a href="#" class="second">' 
          + SecondAnswer[currentQ] + '</a><br />' + 
          '<a href="#" class="close">close</a>'); 
} 

function validate(answer) { 
    var firstIsTrue = CheckFirstAnswer[currentQ]; 

    // correct answer (new question) 
    if ( firstIsTrue && answer == 1 
     || !firstIsTrue && answer == 2) { 
     showNewQuestion(); 
    } 

    // incorrect answer (conclusion) 
    else { 
     $('.messagepop').html(Conclusion[currentQ]); 
    } 
} 

Click處理

$(function() { 

    $("#container_div").live('click', function (event) { 

    // which element was clicked 
    var el = $(event.target); 

    // first answer was clicked 
    if (el.hasClass("first")) { 
     validate(1); 
    } 

    // second answer was clicked 
    else if (el.hasClass("second")) { 
     validate(2); 
    } 

    // questions opener was clicked 
    else if (el.attr("id") == "questions") { 
     el.addClass("selected").parent() 
      .append('<div class="messagepop pop" />'); 
     showNewQuestion(); 
     $(".pop").slideFadeToggle(); 
    } 

    // popup close was clicked 
    else if (el.hasClass("close")) { 
     $(".pop").slideFadeToggle(); 
     $("#questions").removeClass("selected"); 
    } 
    }); 
}); 
+1

:哦,你@ galambalazs!你太棒了! http://www.youtube.com/watch?v=CYzVL0vI-kI – Sotiris 2010-10-31 12:51:53

+0

哇,謝謝。 :) – galambalazs 2010-10-31 13:06:25

0

您應該使用$就發回的回答,使服務器可以評估的答案,發送下一個問題。 目前,任何具有JS基礎知識的人都可以看到CheckFirstSnswer數組並知道正確的答案。 您在網站上有一個HTML頁面,因此我不知道您使用的服務器端編程語言。

創建一個新頁面,接受來自此頁面的帖子並評估請求。此頁面將發送問題ID,答案/ s選定和auth'ed userid到新頁面。新頁面將保持在服務器端的得分和發送下一個問題