gpt4 book ai didi

javascript - Jquery Form - 在数组中存储答案

转载 作者:行者123 更新时间:2023-12-03 11:44:35 25 4
gpt4 key购买 nike

我正在制作一个表格/提问器,它将询问用户一些问题。第一个问题将用户分为两组,在此示例中为卡车或汽车。然后它会问他们一些有关车辆的问题,最后只显示他们回答"is"的哪些好处。

JsFiddle:http://jsfiddle.net/txwbowzy/3/

那我有什么问题吗?在 JsFiddle 中,您将看到每个主题(汽车和卡车)的 JS。我需要每个主题都有一个包含问题的数组和一个收集答案的数组。在问题结束时,它将读取答案数组,并仅显示他们对哪些问题说"is"。如果你实际测试它,你会看到它显示 h2 默认文本,但不知何故我需要它显示数组中的第一个键(汽车问题 1 而不是“隐藏”)。

$('#q1').show();

var qq = 0;

$('#q1 input:radio').change(function () {
var ans = $('input[name="genius"]:checked').val();

$('.q-block').fadeOut(500);
if (ans == 'q1-y'){
$('#ecQuestions').fadeIn(500);
}
if (ans == 'q1-n'){
$('#lgQuestions').fadeIn(500);
}
});
//car
$('#lgQuestions input:radio').change(function () {

var ansLg = $('#lgQuestions input[name="genius"]:checked').val();
var lgQuestions = ["Car Question 1", "Car Question 2", "Car Question 3"];
var lgAnswers = new Array(5);
var activeLg = document.getElementById('activeLg');

if (qq<lgQuestions.length) {
activeLg.innerHTML = lgQuestions[qq];
qq++;
$('#lgQuestions input:radio').prop( "checked", false );
}
else {
$('.q-block').fadeOut(500);
$('#solution').fadeIn(500);
document.getElementById('benefit').innerHTML = "Car benefits";
}

});
//truck
$('#ecQuestions input:radio').change(function () {

var ansEc = $('#ecQuestions input[name="genius"]:checked').val();
var ecQuestions = ["Truck Question 1", "Truck Question 2", "Truck Question 3"];
var ecAnswers = new Array(5);
var activeEc = document.getElementById('activeEc');

if (qq<ecQuestions.length) {
activeEc.innerHTML = ecQuestions[qq];
qq++;
$('#ecQuestions input:radio').prop( "checked", false );
}
else {
$('.q-block').fadeOut(500);
$('#solution').fadeIn(500);
document.getElementById('benefit').innerHTML = "Truck benefits";
}

});

$('#q-contain input:radio').addClass('input_hidden');

$('#q-contain label').click(function () {
$(this).addClass('selected').siblings().removeClass('selected');

});

最佳答案

我不知道,我希望我能理解你的问题。问题是您的 lgQuestions 和 ecQuestions 单选按钮的更改事件上的函数需要在 q1 更改事件的函数内调用。我相信这个修改过的 fiddle 具有您想要的行为。

更新:要显示回答为"is"的问题,您可以随时将它们添加到显示列表中。给 ul 元素一个 id 并将项目留空(您可以在 fiddle 中看到这一点)。然后为每个"is"答案创建一个新的 li 项并将其附加到 ul 元素。更新后的代码如下。

http://jsfiddle.net/skizer/uuy06yf7/

$('#q1').show();

var qq = 0;

$('#q1 input:radio').change(function () {
var ans = $('input[name="genius"]:checked').val();

$('.q-block').fadeOut(500);
if (ans == 'q1-y'){
$('#ecQuestions').fadeIn(500);
truckQuestionChange();
}
if (ans == 'q1-n'){
$('#lgQuestions').fadeIn(500);
carQuestionChange();
}
});
//car

function carQuestionChange() {
var ansLg = $('#lgQuestions input[name="genius"]:checked').val(),
lgQuestions = ["Car Question 1", "Car Question 2", "Car Question 3"],
activeLg = document.getElementById('activeLg'),
liElement;

if(ansLg && ansLg === "lg-y")
{
liElement = document.createElement("li");
liElement.innerHTML = lgQuestions[qq - 1];
$("#benefitsList").append(liElement);
}

if (qq<lgQuestions.length) {
activeLg.innerHTML = lgQuestions[qq];
qq++;
$('#lgQuestions input:radio').prop( "checked", false );
}
else {
$('.q-block').fadeOut(500);
$('#solution').fadeIn(500);
document.getElementById('benefit').innerHTML = "Car benefits";
}
}

function truckQuestionChange() {
var ansEc = $('#ecQuestions input[name="genius"]:checked').val(),
ecQuestions = ["Truck Question 1", "Truck Question 2", "Truck Question 3"],
activeEc = document.getElementById('activeEc');

if(ansEc && ansEc === "ec-y")
{
liElement = document.createElement("li");
liElement.innerHTML = ecQuestions[qq - 1];
$("#benefitsList").append(liElement);
}

if (qq<ecQuestions.length) {
activeEc.innerHTML = ecQuestions[qq];
qq++;
$('#ecQuestions input:radio').prop( "checked", false );
}
else {
$('.q-block').fadeOut(500);
$('#solution').fadeIn(500);
document.getElementById('benefit').innerHTML = "Truck benefits";
}
}

$('#lgQuestions input:radio').change(carQuestionChange);
//truck
$('#ecQuestions input:radio').change(truckQuestionChange);

$('#q-contain input:radio').addClass('input_hidden');

$('#q-contain label').click(function () {
$(this).addClass('selected').siblings().removeClass('selected');
});

如果您需要将答案存储在数组中,则其范围需要位于更改函数之外。您在更改函数中创建了答案数组,这意味着每次用户单击答案时它都会被覆盖。相反,我会声明一个空数组,在其中声明“qq”变量:

var qq = 0,
lgAnswers = [];

然后将答案插入数组:

if (qq<lgQuestions.length) {       
lgAnswers.push(lgQuestions[qq]);
}

答案将存储在具有完整文档范围的数组中。

关于javascript - Jquery Form - 在数组中存储答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26110240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com