javascript - 从动态输入字段中获取单个输入值
问题描述
通过追加创建动态输入及其动态 ID 后,只有最新生成的输入字段提供值
其他动态输入字段返回空字符串
注意:我可以通过使用 for 循环并推入数组来获取动态输入的所有值,但我也想在 key up 上单独获取每个输入。但只有创建的最终输入字段才有价值
这是我的小提琴,
https://jsfiddle.net/xd8nvktf/3/
无法提出解决方案,不胜感激
- 谢谢
HTML
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<button type = "button" class = "btn btn-primary" id = "addInput">Add Input Fields</button>
<div id = "inputAdder">
</div>
</body>
JS/JQUERY
var a = 0;
var fieldValue;
var dataStored = [];
var valueStored = [];
$("#addInput").on("click", function() {
a += 1;
fieldValue = `#filter-value${a}`;
$("#inputAdder").append(
`<div class = "row" id="appender${a}">
<div class="col-md-4 padderSpace">
<input id="filter-value${a}">
</div>
</div>`
)
dataStored.push({value:fieldValue});
console.log(dataStored)
})
$("#inputAdder").on("keyup",fieldValue,changeFunc);
function changeFunc(){
console.log($(fieldValue).val());
valueStored = [];
for(let i = 0;i<=dataStored.length;i++){
valueStored.push({value:$(dataStored[i].value).val()})
console.log(valueStored)
}
}
解决方案
您需要将当前textbox
id 传递给您的changeFunc
函数。
function changeFunc(e){
console.log($("#" + e.target.id).val());
}
这是工作样本。
推荐阅读
- python - 在函数中运行元素明智的条件语句
- python - Discord.py SQLite - 每台服务器使用不同的数据库?
- r - 创建的包“不可用”
- image-processing - 如果整个ground truth都是黑色的,则进行医学图像分割
- sql - 尝试将 SQL Azure 数据库导出到 BACPAC 文件时出错
- javascript - Stripe JS 支付网关的身份验证问题
- sql - 从周一到周五连续数bigquery sql
- python - 如何自动设置行数和列子图
- google-forms - 提交答案后自动关闭 Google 表单的窗口
- operating-system - 如何从我自己的引导加载程序跳转到我自己的内核?