我制作了一个 php 页面,其中一个表是从数据库构建的。每个单元格都是一个禁用的输入文本,应该通过鼠标单击来激活。启用和修改后,按回车键(我已打开其他解决方案,我还没有考虑这一点)应该将新值存储在数据库中,将其显示在表中并再次禁用该字段。
我没有设法切换输入字段的禁用属性,也没有切换之后的所有其他内容(在禁用/启用功能正常工作之前不能这样做)。
这些是代码的一部分,可以帮助您理解我的意思。
这是您可以在接下来的代码中看到的 CSS:
<style type="text/css">
.clickable, input[type="text"]:disabled, input[type="number"]:disabled {
cursor: hand;
}
.clickable:hover {
background: #dcd2ff;
}
input[type="text"]:disabled, input[type="number"] {
background-color: rgba(255,0,0,0);
border: 0px;
width: 100%;
height: 100%;
}
</style>
这是我第一次看JS,我认为enabler应该是这样的:
<script type="text/javascript">
function edit(cellID) {
var cell = document.getElementById(cellID);
cell.disabled = !cell.disabled;
}
</script>
这就是我构建表格的方式:
<table>
<?php
// DB connection + select query
for ($i = 0; $i < $num; $i++)
{
// Getting, for example, $a and $b values
$line_color = ($i % 2 == 0) ? "pair" : "dispair";
echo "<tr class=\"$line_color\">";
echo " <td class=\"clickable\">";
echo " <input id=\"$i-1\" onclick=\"edit('$i-1')\" type=\"text\" value=\"$a\" disabled />";
echo " </td>";
echo " <td class=\"clickable\">";
echo " <input id=\"$i-2\" onclick=\"edit('$i-2')\" type=\"number\" value=\"$b\" disabled />";
echo " </td>";
echo "</tr>";
}
?>
</table>
在这里,您有“另一种观点”:http://jsfiddle.net/vL2rw/