jquery问卷

时间:2010-10-31 11:48:20

标签: javascript jquery

我正在尝试创建一个jquery问卷,但我的小jquery知识对我没有帮助。

到目前为止我所拥有的是以下http://valogiannis.com/stackoverflow/quest.html

单击“问题”时,弹出一个包含两个问题的弹出窗口。

我想要以下内容:当用户点击两个答案中的一个时,脚本会检查他的答案。数组CheckFirstAnswer负责“告诉”第一个答案是错误还是正确,0表示错误,1表示正确。如果用户单击正确的答案,那么我想显示下一个问题及其答案来自数组问题,FirstAnswer,SecondAnswer否则相应的结论按比例i值。

我将不胜感激。

由于

2 个答案:

答案 0 :(得分: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]);
    }
}

点击处理程序

$(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 :(得分:0)

您应该使用$ .ajax发回答案,以便服务器可以评估答案并发送下一个问题。 目前,任何具有JS基础知识的人都可以看到CheckFirstSnswer数组并知道正确的答案。 您在网站上有一个HTML页面,因此我不知道您正在使用的服务器端编程语言。

制作一个新页面,接受来自此页面的帖子并评估该请求。此页面将向新页面发送问题ID,答案选择和auth'ed用户ID。新页面将维护服务器端的分数并发送下一个问题