通过追加创建动态输入及其动态 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)
}
}
答案 0 :(得分:1)
您需要将当前的 textbox
id 传递给您的 changeFunc
函数。
function changeFunc(e){
console.log($("#" + e.target.id).val());
}
Here 是工作样本。