我需要从通用输入字段中检索日期。用户可以在表单中创建的日期(输入字段)的数量是我所不知道的,所以我用rowCount来计算它们。
我无法提取字段值(语法错误可能)。
N.B当我午餐时,我得到的代码:无法设置属性' 0'未定义的
HTML代码:
<div>
<table id='dynamic_field_edit'>
<tbody>
<tr>
<td>Date</td>
<td><input type="text" placeholder="Enter date" /></td>
</tr>
<tr>
<td>Date:</td>
<td><input type="text" placeholder="Enter date" /></td>
</tr>
</tbody>
</table>
</div>
JS代码:
var arrayDate = [];
var rowCount = document.getElementById('dynamic_field_edit').rows.length;
console.log(rowCount);
var allInputs = document.querySelectorAll('input');
for (let i = 0; i < allInputs.length; i++) {
arrayDate.push(allInputs[i].value);
}
console.log(arrayDate);
修改
在完成所有建议的更改之后,它可以正常工作,但它会从文档中的输入中检索所有值。
答案 0 :(得分:2)
您只需初始化阵列:
var arrayDate = [];
修改强>
似乎可以在此示例中使用,您可以与您的代码进行比较吗?
https://jsfiddle.net/emeLdecm/1/
(我添加了一个按钮来启动你的JS,只是为了演示)
答案 1 :(得分:1)
您是否在普通的javascript中使用jQuery语法?
通过以下方式选择您的表格:
table = document.getElementById('dynamic_field_edit');
并迭代:
for (var i = 0, row; row = table.rows[i]; i++) {
// do your stuff
};
答案 2 :(得分:0)
我找到了一种方法来实现我想要做的事情。
@proggrock解决方案也适用于检索文档中的所有输入值。
var arrayDate = [];
var rowCount = document.getElementById('dynamic_field_edit').rows.length;
console.log(rowCount);
$("#dynamic_field_edit").find('input:text')
.each(function() {
arrayDate.push($(this).val());
});
console.log(arrayDate);