2010-10-31 80 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到新页面。新页面将保持在服务器端的得分和发送下一个问题