gpt4 book ai didi

Jquery - 从动态创建的输入中获取值

转载 作者:行者123 更新时间:2023-12-03 22:45:34 24 4
gpt4 key购买 nike

我一直在尝试创建一个“测验生成器”。

我有一个表格,您可以填写测验的备选答案,但在这里您还可以使用新 ID 动态创建新字段。

因此它使用 id txtAnswer1、txtAnswer2 等创建新输入。

这是获取值的(不起作用)代码:

    $("#AddNewQuiz").click(function () {
var NewQuizAlts = $("#txtAnswer").val();
var NewQuizQuestion = $("#NewQuizQuestion").val();
var init = {
'questions': [
{
'question': NewQuizQuestion,
'answersAlts': [NewQuizAlts,'Two','Three','Four'],
'correctAnswer': 1
}
]
}

你看到这里它只获取静态的第一个值。但我想获得在“循环”或其他东西中创建的所有值。

有人有什么想法吗?

谢谢!

<小时/>

感谢您的回答!

但我无法让它工作!

我已经尝试过这个:

    $('input[id^="txtAnswer"]').each(function(input){
var value = $('input[id^="txtAnswer"]').val();
var id = $('input[id^="txtAnswer"]').attr('id');
alert('id: ' + id + ' value:' + value);
});

但是只给我仅最后创建的输入的警报(4次)。可能出了什么问题?

事实是,这就是我想要实现的目标:

1.) 使用上面的代码获取所有创建的输入的列表。

2.) 将它们放入逗号分隔的列表中,其值如下所示:

    QuestionAlts = [''+Alt1+'',''+Alt2+'',''+Alt3+''];

3.) 并且让它根据创建的输入数量在列表中生成更多替代方案,因此如果我创建了 5 个替代方案,它将是:

    QuestionAlts = [''+Alt1+'',''+Alt2+'',''+Alt3+'',''+Alt4+'',''+Alt5+''];

我理解在这一切方面寻求帮助是否很多,但有一点总比没有好:)

谢谢!

最佳答案

编辑:

在此代码中,您没有正确使用上下文。 http://api.jquery.com/jQuery.each/

$('input[id^="txtAnswer"]').each(function(input){
var value = $('input[id^="txtAnswer"]').val();
var id = $('input[id^="txtAnswer"]').attr('id');
alert('id: ' + id + ' value:' + value);
});

在您的 .each 中,传递给函数的是您使用选择器拉取的数组中的一项。当您设置value = $('input...时,您将再次拉动相同的数组。

使用.each ,这样:

$('your selector').each(function(index, item){
var val = $(item).val();
var id = $(item).attr('id');
...
});

除非您需要答案具有 id,否则为什么不使用 data-* 属性将它们表示为答案?您可以像这样标记每个:

<input data-type="answer"/>

然后以这种方式将它们全部拉出:

$('input[data-type="answer"]')

这样做可以消除需要确保每个动态 ID 都是唯一的担忧(如果它们不重要的话)。我有一个为工作创建的数据过滤器,它在页面加载后动态创建元素,并且以这种方式从 DOM 中提取数据没有问题。

关于Jquery - 从动态创建的输入中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16245947/

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