我正在尝试创建一个jquery问卷,但我的小jquery知识对我没有帮助。
到目前为止我所拥有的是以下http://valogiannis.com/stackoverflow/quest.html
单击“问题”时,弹出一个包含两个问题的弹出窗口。
我想要以下内容:当用户点击两个答案中的一个时,脚本会检查他的答案。数组CheckFirstAnswer负责“告诉”第一个答案是错误还是正确,0表示错误,1表示正确。如果用户单击正确的答案,那么我想显示下一个问题及其答案来自数组问题,FirstAnswer,SecondAnswer否则相应的结论按比例i值。
我将不胜感激。
由于
答案 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。新页面将维护服务器端的分数并发送下一个问题