首页 > 解决方案 > 从动态输入字段中获取单个输入值

问题描述

通过追加创建动态输入及其动态 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)
  
  }
  
  }
   

标签: javascripthtmljquery

解决方案


您需要将当前textboxid 传递给您的changeFunc函数。

function changeFunc(e){
    console.log($("#" + e.target.id).val()); 
  }

是工作样本。


推荐阅读