我有一个网站,在那里我可以上传Excel工作表,这将打印在网站上的一个表格。表格中的某些单元格包含可编辑的文本区域。在表格的末尾是一个按钮,它应该将所有内容保存在一个数组中。
该表有3列和多行。第2列和第3列的文本数据嵌套在表格单元格中。现在,我想将textarea值存储在JS中的一个数组中,调用当前textarea的Id。文本区域的ID是动态给定的,数组也应该动态填充。我想遍历所有表格单元格并保存当前表格单元格/文本区域的值。表格单元格是没有问题的。但是Textareas的东西不起作用。
首先,我遍历了每个表格行和单元格,并将文本放入数组中。它起作用了,但后来我注意到,当我编辑文本区域时,更新后的值不会被接受。首先,我使用了.text(),然后我尝试了.val(),但它不起作用。我认为问题是我在"td“上调用了.val(),它是"”
PHP:
echo '<td><textarea class="form-control" style="overflow:hidden; resize:none; min-height:62px;" onkeyup="auto_grow(this)" cols="10" id="ta'.$taID.'" type=text style="border:none">' . ( ! empty( $r[ 1 ] ) ? $r[ 1 ] : ' ') . '</textarea></td>';
$taID++;JS:
var tableData = new Array(5);
$('#tblAusgabe tr').each(function(row, tr){
for(var i=0;i<3;i++){
var inputString = $(tr).find('td:eq('+i+')').text();
if(i==0){
tableData[arrIndex][mitarbeiterCount][i] =
inputString.substr(2,inputString.length-3);
}
else if(i==1){
tableData[arrIndex][mitarbeiterCount][i] = inputString;
}
else{
var taid=$(tr).find('td:eq('+i+')').attr('id'); // not working
console.log("1."+$(tr).find('td:eq('+i+')').attr('id')); //test
console.log("2."+taid); //test
tableData[arrIndex][mitarbeiterCount][i] = $(this).val();
}
}
}我想要像这样的东西
var id = $(thisElement).attr('id');
array[index]= $(id).val();但是我不知道怎么叫文本区域的ID。或者有没有更简单的方法呢?
希望你能理解这个问题,并能帮助我。对不起,我的英语不太好,我是德国人,这是我的第一个问题:)
发布于 2019-04-26 20:48:25
用另一种方式解决了它。我用一个计数器来做这件事,每次有一个文本区域通过这个计数器时,它就会加1。
tableData[arrIndex][mitarbeiterCount][i]=document.getElementById("ta"+count).value;
count++;发布于 2019-04-26 18:01:22
您可以使用map遍历每个tr。使用id作为属性名称和值,将所有textarea和reduce find到一个对象。
var result = $('#tblAusgabe tr').map(function(i, o) {
return $(o).find('textarea').get().reduce(function(c, v) {
c[v.id] = v.value;
return c;
}, {});
}).get();
console.log(result);<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="tblAusgabe">
<tr>
<td>1</td><td><textarea id="ta01a">apple</textarea></td><td><textarea id="ta01b">orange</textarea></td>
</tr>
<tr>
<td>1</td><td><textarea id="ta02a">red</textarea></td><td><textarea id="ta02b">blue</textarea></td>
</tr>
<tr>
<td>1</td><td><textarea id="ta03a">php</textarea></td><td><textarea id="ta03b">javascript</textarea></td>
</tr>
</table>
https://stackoverflow.com/questions/55864738
复制相似问题