Reputation: 33
I'm trying to make a table where the user can enter text into each cell of the table. There are also rows that you can add with a button and I would need text to be enterable into those cells as well. I would also need to add up the assignment columns to get the average of all assignments which would automatically be entered into the average (%) column. The code segment includes my HTML, JS, and CSS.
function addRow() {
var table = document.getElementById("tb");
var tableLength = 5;
var row = table.insertRow(tableLength);
tableLength++;
var cell0 = row.insertCell(0);
var cell1 = row.insertCell(1);
var cell2 = row.insertCell(2);
var cell3 = row.insertCell(3);
var cell4 = row.insertCell(4);
var cell5 = row.insertCell(5);
var cell6 = row.insertCell(6);
var cell7 = row.insertCell(7);
cell0.innerHTML = "-";
cell1.innerHTML = "-";
cell2.innerHTML = "-";
cell3.innerHTML = "-";
cell4.innerHTML = "-";
cell5.innerHTML = "-";
cell6.innerHTML = "-";
cell7.innerHTML = "-";
}
.centered {
text-align: center;
}
.button {
position: center;
font-size: 15px;
}
<!DOCTYPE html>
<html>
<head>
<title>Assignment 2</title>
<link rel="stylesheet" href="Assignment-03.css">
<script src="Assignment-03.js"></script>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td{
border: 1px solid black;
text-align: left;
padding: 8px;
height: 20px;
}
th{
border: 1px solid black;
text-align: center;
padding: 8px;
height: 20px;
background-color: #a6a6a6;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
</head>
<body>
<table id = "tb">
<tr>
<th>Student Name</th>
<th>Student ID</th>
<th>Assignment 1</th>
<th>Assignment 2</th>
<th>Assignment 3</th>
<th>Assignment 4</th>
<th>Assignment 5</th>
<th>Average (%)</th>
</tr>
<tr>
<td>-</td>
<td>-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td>-</td>
</tr>
<tr>
<td>-</td>
<td>-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td>-</td>
</tr>
<tr>
<td>-</td>
<td>-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td>-</td>
</tr>
<tr>
<td>-</td>
<td>-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td style = "text-align: center;">-</td>
<td>-</td>
</tr>
</table>
<br>
<div class = "centered">
<button class = "button" type="button" onclick="addRow()">Add Row</button>
</div>
</body>
</html>
Upvotes: 0
Views: 250
Reputation: 43156
Try using contentEditable
like cell.contentEditable = 'true'
You can find a more detailed guide here: Making content editable
Upvotes: 2