【发布时间】:2013-12-26 22:43:11
【问题描述】:
我有一份包含 12 个部门的表单问卷。第一个div 是显示块,其他的是无显示。然后在单击时使用选项卡功能显示和隐藏 div。最后一个 div 是对由 ajax 调用加载的表单的回顾。下面的代码运行良好,直到我想添加一个按钮,以便用户可以返回并回答未回答的问题
这段代码运行良好** $(文档).ready(函数 () { var tab_pool = [“Q1”、“Q2”、“Q3”、“Q4”、“Q5”、“Q6”、“Q7”、“Q8”、“Q9”、“Q10”、“Q11”、“Q12” "]; var visible = $(".tab:visible").attr('class').split(" ")[1]; var curr_ind = $.inArray(visible, tab_pool);
$('.next').click(function () {
$("#processing").show();
$.ajax({
type: "POST",
url: "process.php",
data: $('.data').serialize() + "&data=" + data,
success: function (data, status, xhr) {
if (xhr.getResponseHeader("DB_SUCCESS") == 1) {
$("#processing").hide();
} else {
$("#processing").hide();
alert("Save failed");
return false;
}
}
});
// There are conditions here such as if this then
// curr_ind = curr_ind + whatever to move to next relevant question
if (curr_ind < 11) {
$(".tab:visible").delay(750).hide(0);
$("#processing").delay(750).hide(0);
curr_ind = curr_ind + 1;
$("." + tab_pool[curr_ind]).delay(750).show(0);
$(".finished").delay(750).hide(0);
$(".back").delay(750).show(0);
}
// if the user has reached the end then below we show the review of questionaire
if (curr_ind === 11) {
$("#processing").delay(750).hide(0);
$(".finished").delay(750).show(0);
$.ajax({
type: "POST",
url: 'review.php',
data: "username=" + username,
success: function (data, status, xhr) {
if (xhr.getResponseHeader("DB_SUCCESS") == 1) {
$("#review").show();
$('#review').html(data);
} else {
alert("Review not available");
return false;
}
}
});
}
});
// after the first question a back button is display for
// user to go back to previous question
$('.back').click(function () {
if (curr_ind > 0) {
$(".tab:visible").hide();
// There ar conditions here so user is brought back to
// the right div and not one that was skipped from conditions above
$("." + tab_pool[curr_ind]).show();
document.getElementById(tab_pool[curr_ind]).checked=false;
$(".finished").hide();
$(".next").show();
}
if (curr_ind === 0) {
$(".back").hide();
}
});
结束工作代码**
// **** what I want here is a button for unanswered questions that will bring user
// back to that specific unaswered question
// I tried assigning a class and a numeric value to those buttons but
// for some reason I get a new blank page???
// I tried a few variations of the code below
function answerQ (value) {
var returnTo = value;
curr_ind = curr_ind - returnTo;
$(".tab:visible").hide();
$("." + tab_pool[curr_ind]).show();
document.getElementById(tab_pool[curr_ind]).checked=false;
$(".finished").hide();
$(".back").hide();
$(".next").show();
}
});
** 返回未回答问题的按钮示例
回答
【问题讨论】:
-
可能使用cookie来跟踪用户的访问,然后使用它来决定显示哪些div
标签: javascript php ajax