所以有人问了一些非常相似的东西,但是我需要用户点击按钮而不是选择框。
此功能适用于选择框,适用于answer
function doSubmit(obj)
{
var oQuestion = $(obj).parents(".question").first();
var skipCount = parseInt(oQuestion.find(".skipper").val(), 10);
if (isNaN(skipCount) || skipCount < 0)
skipCount = 0;
var oNext = oQuestion.next();
for (var i = 0; i < skipCount; i++)
oNext = oNext.next();
oNext.data("prev_index", oQuestion.index());
oNext.show();
oQuestion.hide();
}
function backToPrev(obj)
{
var oQuestion = $(obj).parents(".question").first();
var index = parseInt(oQuestion.data("prev_index"), 10);
if (isNaN(index) || index < 0)
oQuestion.prev().show();
else
$(".question").eq(index).show();
oQuestion.hide();
}
我试图将选择框更改为无线电输入,但我认为它没有通过的值,因为如果我选择是或否,出现的div总是相同的。 (应该是问题2到是,问题3到否)fiddle with problem
有人可以指导我吗?
提前致谢。
答案 0 :(得分:1)
这里的关键是将“跳过”数据以某种方式嵌入到每个相关按钮中。
可以使用普通按钮完成:
<button type="button" onclick="doSubmit(this);">Yes</button>
<button type="button" data-skip="1" onclick="doSubmit(this);">No</button>
“否”按钮将导致跳过一个问题。
为了支持这一点,该功能应改为:
function doSubmit(obj)
{
var sender = $(obj);
var oQuestion = sender.parents(".question").first();
//first, try directly from sender:
var skipCount = parseInt(sender.data("skip") || "");
if (isNaN(skipCount)) {
//try from parent
skipCount = parseInt(oQuestion.find(".skipper").val(), 10);
}
if (isNaN(skipCount) || skipCount < 0)
skipCount = 0;
var oNext = oQuestion.next();
for (var i = 0; i < skipCount; i++)
oNext = oNext.next();
oNext.data("prev_index", oQuestion.index());
oNext.show();
oQuestion.hide();
}