【发布时间】:2020-06-07 15:07:27
【问题描述】:
所以,几天前,I posted this question(几乎完全相同)收到了非常有帮助的回复。
但是,为了制作一个表格计算器,我已经为某一列的每个表格行设置了一个id,以将表格变成一个计算器,这在我尝试为自己应用它(JavaScript 用数字解析单位“kg”并将总和显示为“NaN”)。
此外,每个单元格内都有一个可见的文本框,上面有答案,看起来有点难看。我当前的代码包含不显示为文本框但仍可编辑的单元格,这在我看来提供了更流畅的体验(我知道它没有功能差异,但外观让我很烦恼!)
下面是我希望代码看起来像的模型。 我正在尝试使数字/输入显示在文本框的右侧,但仍显示在单位(“kg”)的左侧。
下面是我正在尝试创建的模型(除了数字在右侧)。
这是我的代码:
<head>
<style>
table {
border: 1px solid black;
border-collapse: collapse;
font-family: Arial, sans-serif;
margin: 5px;
width: 100%;
}
th, td {
border: 1px solid black;
border-collapse: collapse;
font-family: Arial, sans-serif;
margin: 5px;
padding: 5px;
}
</style>
</head>
<body>
<table>
<tr>
<th>header1</th>
<th>header2</th>
</tr>
<tr>
<td>entry1</td>
<td id="entry1" oninput="myFunction()">4000</td>
</tr>
<tr>
<td>entry2</td>
<td id="entry2" oninput="myFunction()">200</td>
</tr>
<tr>
<td>Total</td>
<td id="total"></td>
</tr>
</table>
<script type="text/javascript">
document.getElementById("entry1").contentEditable = true;
document.getElementById("entry2").contentEditable = true;
function myFunction() {
var entry1 = document.getElementById("entry1").innerText;
var entry2 = document.getElementById("entry2").innerText;
var total2 = parseInt(entry1) + parseInt(entry2);
document.getElementById("total").innerHTML = total2;
}
myFunction();
</script>
</body>
如您所见,它将右列中的数字相加,并在最后一行显示总和。但是,我希望单位(例如“kg”)显示在此处,不可编辑,更重要的是,不要在 JavaScript 函数中被解析为数字。如果丑陋的文本框轮廓也没有出现在单元格内,那就太好了。
这可能吗?任何答案表示赞赏!
【问题讨论】:
-
[题外话]:你也应该让你的内容可编辑single-line
标签: javascript html css