所以有人问了一些非常相似的问题,但我需要用户点击按钮而不是选择框。
此功能适用于选择框,摆弄 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
有人可以指导我吗?
提前致谢。
最佳答案
这里的关键是以某种方式将“跳过”数据嵌入到每个相关按钮中。
可以使用普通按钮来完成:
<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();
}
关于javascript - 使用单选按钮跳到 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20017093/