【问题标题】:Get values of dynamically created input elements获取动态创建的输入元素的值
【发布时间】:2017-05-29 21:01:53
【问题描述】:

我使用下面的 JavaScript 创建了动态 input 元素:

while(count<n-2){
  if(dataArray[count+1]=='String')
    var txt = "Argument:"+(count+1)+", Prefix: <input type=\"text\" name=\"prefix[]\">, Default value: <input type=\"text\" name=\"defaultval[]\" id=\"defaultval[]\"> <br>"; 
  else if(dataArray[count+1]=='File')
      var txt = "Argument:"+(count+1)+", Prefix: <input type=\"text\" name=\"prefix[]\">, Default file: <input type=\"file\" name=\"fileToUpload[]\" id=\"fileToUpload[]\"> <br>"; 

      $("#dynamic_element").append(txt);
  count++;
} 

如何使用jQuery获取创建的inputs的值?

我的意思是在函数内部是这样的:

function myFunc(){
    var x0 = $('#defaultval[0]').val();
    var y0= $('#fileToUpload[0]').val();
}

【问题讨论】:

  • 在很多方面,但你想如何获取值?点击,在你的函数内,提交,模糊...
  • @Lixus 我已经更新了我的帖子,希望现在更清楚。

标签: javascript jquery html


【解决方案1】:

方括号不是 ID 的有效字符。要么删除它们,要么使用:

var x0 = $('input[id="defaultval[0]"]').val();
var y0 = $('input[id="fileToUpload[0]"]').val();

工作示例:

var x0 = $('input[id="defaultval[0]"]').val();
var y0 = $('input[id="fileToUpload[0]"]').val();

$('#example1').text('value of "defaultval[0]": ' + x0);
$('#example2').text('value of "fileToUpload[0]": ' + y0);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="defaultval[0]" name="defaultval[0]" value="0">
<input type="text" id="fileToUpload[0]" name="fileToUpload[0]" value="1">
<br>
<span id="example1"></span>
<br>
<span id="example2"></span>

【讨论】:

  • 您的示例似乎忽略了元素是动态创建的。我在我的代码中尝试了你的解决方案,但它总是给出 undefined 值。
  • 这是因为我们没有您的所有代码。我们不知道您要选择哪些以及何时选择,如果您有索引(看起来是这样),并且在您发布的创建输入的代码中,您没有在方括号内放置任何数字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 2021-04-21
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
  • 1970-01-01
相关资源
最近更新 更多